@martin0207
2018-04-25T06:08:25.000000Z
字数 3479
阅读 792
Java学习
Spring的所有Jar包和MySql的*-bin.jar
Spring支持的数据源有:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 打开Spring的Annotation --><context:annotation-config /><!-- 设定Spring去那些包中找Annotation --><context:component-scan base-package="spring" /><bean id="dataSource"class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"><property name="driverClassName"value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean></beans>
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/spring_jdbcjdbc.username=rootjdbc.password=123456
<context:property-placeholder location="jdbc.properties"/>
Dao创建JdbcTemplate对象,通过JDBCTemplate对象可以方便的完成对数据库的操作。
@Repository("userDao")public class UserDao implements IUserDao {private JdbcTemplate jdbcTemplate;@Overridepublic void add(User user) {// TODO Auto-generated method stub}@Overridepublic void update(User user) {// TODO Auto-generated method stub}@Overridepublic void delete(int id) {// TODO Auto-generated method stub}@Overridepublic User load(int id) {// TODO Auto-generated method stubreturn null;}@Overridepublic List<User> list() {// TODO Auto-generated method stubreturn null;}}
@Resourcepublic void setDataSource(DataSource dataSource) {this.jdbcTemplate = new JdbcTemplate(dataSource);}
添加
@Overridepublic void add(User user) {jdbcTemplate.update("insert into t_user(name,pwd,nick,gid) value(?,?,?,?)",user.getName(),user.getPwd(),user.getNick(),gid);}
更新
@Overridepublic void update(User user) {jdbcTemplate.update("update t_user set name=?,pwd=?,nick=? where id=?",user.getName(), user.getPwd(),user.getNick(),user.getId());}
删除
@Overridepublic void delete(int id) {jdbcTemplate.update("delete from t_user where id=?",id);}
查询
@Overridepublic User load(int id) {String sql = "select t1.id uid,t1.*,t1.name uname,t2.*,t2.name gname from t_user t1 left join t_group t2 on(t1.gid=t2.id) where t1.id=?";/*** 第一个参数是sql语句 第二个参数是SQL语句的参数值,需要传入数组* 第三个参数是RowMapper,可以完成一个对象和数据库字段的对应。实现这个RowMapper,需要实现mapRow方法* mapRow方法中的rs可以有效地获取数据库的字段*/User user = jdbcTemplate.queryForObject(sql, new Object[] { id }, new UserMapper());return user;}@Overridepublic List<User> list() {String sql = "select t1.id uid,t1.*,t2.*,t2.name gname,t1.name uname from t_user t1 left join t_group t2 on(t1.gid=t2.id)";return jdbcTemplate.query(sql, new UserMapper());}public class UserMapper implements RowMapper<User>{@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {Group group = new Group();group.setName(rs.getString("gname"));group.setId(rs.getInt("gid"));User user = new User();user.setName(rs.getString("uname"));user.setId(rs.getInt("uid"));user.setPwd(rs.getString("pwd"));user.setNick(rs.getString("nick"));user.setGroup(group);return user;}}