Spring Jdbc Discussion

JdbcTemplate use to operate the database and namedJdbcTemplate

1. Configuration

  A configuration file applicationContext-jdbc.xml maven file src / main / resources used for position configuration.

  <1> JdbcTemplate configuration and arrangement namedJdbcTemplate

      That connection pool configuration data loaded dataSource attribute as jdbcTemplate

      namedJdbcTemplate can use the map to implement database operations do not have to use the language?

<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>
 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource"></property>
 </bean>
<bean id="namedJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg index="0" ref="dataSource"></constructor-arg>
    </bean>

 

  <2> connection pool configuration data (i.e. password account database data to be used, etc.)

mysql_driver=com.mysql.cj.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/shujukukkkkk?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
mysql_username=root
mysql_passwd=225510

 

  <3> The type of automatic scanning assembly, while the connection pool configuration properties of the loading position

 

// use the connection pool data writing position 
<context: Property-placeholder LOCATION = "config / db.properties" /> // will automatically scan package names need kind of write
<context: Scan-base- Component Package = "com.zzxtit.springboot.jdbc"> </ context : component-scan>

 

2. Specific achieve springjdbc

  <1> user created data class, and the class data manipulation userdao

 

     SysUser established (corresponding to data in the database and get set method)

package com.zzxtit.springboot.jdbc;

public class SysUser {
 
 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 Integer userId;
 
 public Integer getUserId() {
  return userId;
 }
 @Override
 public String toString() {
  return "SysUser [userName=" + userName + ", passwd=" + passwd + ", salt=" + salt + ", realName=" + realName
    + ", avatar=" + avatar + ", phone=" + phone + ", email=" + email + ", gender=" + gender + ", userId="
    + userId + "]";
 }
 public void setUserId(Integer userId) {
  this.userId = userId;
 }
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public String getPasswd() {
  return passwd;
 }
 public void setPasswd(String passwd) {
  this.passwd = passwd;
 }
 public String getSalt() {
  return salt;
 }
 public void setSalt(String salt) {
  this.salt = salt;
 }
 public String getRealName() {
  return realName;
 }
 public void setRealName(String realName) {
  this.realName = realName;
 }
 public String getAvatar() {
  return avatar;
 }
 public void setAvatar(String avatar) {
  this.avatar = avatar;
 }
 public String getPhone() {
  return phone;
 }
 public void setPhone(String phone) {
  this.phone = phone;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public int getGender() {
  return gender;
 }
 public void setGender(int gender) {
  this.gender = gender;
 }

 
}

      userdao implementation

        Comprising jdbaTemplate CRUD and by adding the namedJdbcTemplate

package com.zzxtit.springboot.jdbc;

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private NamedParameterJdbcTemplate npjTemplate;
    //通过id添加数据
    public void insertUserInfo(SysUser su) {
        
        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());
    }
    
  //通过id查找数据
    public SysUser getUserById(int userId) {
        
        String sql = "select * from t_sys_user where user_id = ?";
        return jdbcTemplate.query(sql, new Object[] {userId}, new BeanPropertyRowMapper<SysUser>(SysUser.class)).get(0);
    }
  //通过id删除数据
public void deleteById(int userId) { String sql="delete from t_sys_user where user_id = ?"; jdbcTemplate.update(sql, userId); }
  //通过id修改数据
public void rebuiltById(SysUser su,int userId) { String sql = "update t_sys_user set user_name = ?, passwd = ?, salt = ? , real_name = ?, avatar = ?, phone = ?, " + "email = ?, gender = ?, create_time = now() where user_id = ?"; jdbcTemplate.update(sql, su.getUserName(), su.getPasswd(), su.getSalt(), su.getRealName(), su.getAvatar(), su.getPhone(), su.getEmail(), su.getGender(),userId); } //通过namedJdbcTemplate添加数据(即利用map对象,不用使用?) public void insertByNJP(SysUser su) { String sql = "insert into t_sys_user (user_name, passwd, salt, real_name, avatar, phone, " + "email, gender, create_time) values (:useName, :passwd, :salt, :realName, :avatar, :phone,:email,:gender, now())"; Map<String,Object> paramMap = new HashMap<String,Object>(); paramMap.put("useName", su.getUserName()); paramMap.put("passwd", su.getPasswd()); paramMap.put("salt", su.getSalt()); paramMap.put("realName", su.getRealName()); paramMap.put("avatar", su.getAvatar()); paramMap.put("phone", su.getPhone()); paramMap.put("email", su.getEmail()); paramMap.put("gender", su.getGender()); npjTemplate.update(sql,paramMap); } }

 3. Create ioc spring connected with the main function performed using

public static void main(String[] args) {
        ApplicationContext ioc = new ClassPathXmlApplicationContext("config/applicationContext-jdbc.xml");
        
        UserDao ud = ioc.getBean(UserDao.class);
     SysUser su1 = ud.getUserById(4);
     su1.setUserName("haha");
      su1.setPhone("5146842365");
      ud.insertUserInfo(su1);
}

 4. Also remember to open the relevant connection to the database

 

Guess you like

Origin www.cnblogs.com/ljlspace/p/11886239.html