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?
<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>
<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)
public class SysUser {
private String userName;
private String passwd;
private String salt;
private String realName;
private String avatar;
private String email;
private int gender;
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 + "]";
}
this.userId = userId;
}
return userName;
}
this.userName = userName;
}
return passwd;
}
this.passwd = passwd;
}
return salt;
}
this.salt = salt;
}
return realName;
}
this.realName = realName;
}
return avatar;
}
this.avatar = avatar;
}
return phone;
}
this.phone = phone;
}
return email;
}
this.email = email;
}
return 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