首页 > 数据库技术 > 详细

spring JDBC开发流程

时间:2019-11-19 16:03:23      阅读:102      评论:0      收藏:0      [点我收藏+]

一、

  Spring JDBC 是spring 官方提供的一个持久层框架,对jdbc进行了抽象和封装,消除了重复冗余的jdbc重复性的代码,使操作数据库变的更简单。

二、

  引入对应的架包

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>

  引入驱动

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>

  连接池

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

  配置连接池(专项配置文件)

<context:component-scan base-package="com.zzxtit.spring.jdbc"></context:component-scan>
    <context:property-placeholder location="config/DB.properties"/>
    

  创建DB.properties   注意时间戳

mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://locallhost:3306/first?serverTimezone=UTC
mysql_username=root
mysql_passwd=root

  创建DataSource注入连接的属性值 (区别el表达式和spel表达式)

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${mysql_driver}"></property>
        <property name="url" value="${mysql_url}"></property>
        <property name="username" value="${mysql_username}"></property>
        <property name="password" value="${mysql_passwd}"></property>
    </bean>

   初始化jdbc

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" value="#{dataSource}"></property>
    </bean>

  创建接口  

package com.zzxtit.spring.jdbc;

public interface UserDao {
    public void insertUserInfo(SysUserInfo su);
    
    public SysUserInfo getSysUserById(int userId);
}

  创建一个信息类

package com.zzxtit.spring.jdbc;
import java.util.Date;

import lombok.Data;

@Data
public class SysUserInfo {

    private Integer userId;
    
    private String userName;
    
    private String passwd;
    
    private String salt;
    
    private String realName;
    
    private String avatar;
    
    private String phone;
    
    private String email;
    
    private int gender;
    
    private int locked;
    
    private Date createTime;
    
    private Date updateTime;}

 


  创建一个实现类

package com.zzxtit.spring.jdbc;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jndi.JndiTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDaoImpl implements UserDao{

    @Autowired
        private JndiTemplate jdbcTemplate;
    public void insertUserInfo(SysUserInfo su) {
        // TODO Auto-generated method stub
        
        String sql="insert into t_sys_user (user_name, passwd, salt, real_name, avatar, phone, email, gender, create_time) "
                + "values (?, ?, ?, ?, ?, ?, ?, ?, now())";
        
        jdbcTemplate.update(sql, su.getUserName(), su.getPasswd(), su.getSalt(),
                su.getRealName(), su.getAvatar(), su.getPhone(), 
                su.getEmail(), su.getGender());
        
    }

    public SysUserInfo getSysUserById(int userId) {
        // TODO Auto-generated method stub
        
        String sql = "select * from t_sys_user where user_id = ?";
        List<SysUserInfo> suList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<SysUserInfo>(SysUserInfo.class), userId);
        
        if(suList != null && suList.size() > 0) {
            return suList.get(0);
        }else {
            return null;
        }
        
    }

}

       创建bean时默认使用无参的构造方法,如果写了有参的构造方法需要手动添加一个无参的构造方法

   ??List<SysUserInfo> suList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<SysUserInfo>(SysUserInfo.class), userId);

  RowMapper返回的是一个list

 jdbcTemplate.query(sql,new RowMapperResultSetExtractor(new BeanPropertyRowMapper<SysUserInfo>(SysUserInfo.class),1),userId);获取的是一条数据

  

package com.zzxtit.spring.jdbc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

    public static void main(String[] args) {
        
        ApplicationContext ioc = new ClassPathXmlApplicationContext("config/applicationContext-jdbc.xml");
        
        UserDao ud = ioc.getBean(UserDao.class);
        
        
        SysUserInfo su = ud.getSysUserById(1);
        
        su.setUserName("mingzi");
        //添加数据
        ud.insertUserInfo(su);
        System.out.println("---------------->" + su);
    }
}

 

 

 

  

spring JDBC开发流程

原文:https://www.cnblogs.com/jk1024/p/11889622.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!