@martin0207
2018-04-25T06:08:25.000000Z
字数 3479
阅读 751
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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://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.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_jdbc
jdbc.username=root
jdbc.password=123456
<context:property-placeholder location="jdbc.properties"/>
Dao创建JdbcTemplate对象,通过JDBCTemplate对象可以方便的完成对数据库的操作。
@Repository("userDao")
public class UserDao implements IUserDao {
private JdbcTemplate jdbcTemplate;
@Override
public void add(User user) {
// TODO Auto-generated method stub
}
@Override
public void update(User user) {
// TODO Auto-generated method stub
}
@Override
public void delete(int id) {
// TODO Auto-generated method stub
}
@Override
public User load(int id) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<User> list() {
// TODO Auto-generated method stub
return null;
}
}
@Resource
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
添加
@Override
public void add(User user) {
jdbcTemplate.update("insert into t_user(name,pwd,nick,gid) value(?,?,?,?)",
user.getName(),user.getPwd(),user.getNick(),gid);
}
更新
@Override
public void update(User user) {
jdbcTemplate.update("update t_user set name=?,pwd=?,nick=? where id=?",
user.getName(), user.getPwd(),user.getNick(),user.getId());
}
删除
@Override
public void delete(int id) {
jdbcTemplate.update("delete from t_user where id=?",id);
}
查询
@Override
public 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;
}
@Override
public 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>{
@Override
public 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;
}
}