Spring jdbcTemplate
2016-02-01 22:35
337 查看
为了方便DAO中注入JdbcTemplate,Spring为每一个持久化技术都提供了支持类
XML配置:
实体类模型
调用客户端
XML配置:
<context:property-placeholder location="classpath*:db.properties" /> <!-- 开启自动代理功能 --> <aop:aspectj-autoproxy/> <!-- 1. 数据源 : DriverManagerDataSource 寻找propertues映射文件 --> <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <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> <!--配置jdbc模板,将数据源注入到模板中--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="datasource"/> </bean>
实体类模型
public class UserModel { private int id; private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }DAO实现
@Repository public class UserDAO { @Resource private JdbcTemplate jdbcTemplate; public void save() { String sql="insert into test(`name`,age) values(?,?)"; jdbcTemplate.update(sql,"zlisi",20); } public void update(int age,int id){ String sql = "update test set age=? where id=?"; int update = jdbcTemplate.update(sql, age, id); System.out.println(update); } /** * 查询条数 * @return */ public int countId(){ String sql="select count(id) from test"; return jdbcTemplate.queryForInt(sql); } public String selectIterm(int id){ String sql="select name from test where id=?"; return jdbcTemplate.queryForObject(sql,String.class,2); } public UserModel selectObjectById(int id){ String sql = "select id,name,age from test where id=?"; //映射规则 RowMapper<UserModel> rowMap = new RowMapper<UserModel>() { public UserModel mapRow(ResultSet rs, int i) throws SQLException { UserModel userModel = new UserModel(); userModel.setAge(rs.getInt("age")); userModel.setName(rs.getString("name")); userModel.setId(rs.getInt("id")); return userModel; } }; //单个数据用queryForObject return jdbcTemplate.queryForObject(sql, rowMap, 2); } public List<UserModel> selectOList(int age){ String sql = "select id,name,age from test where age=?"; //映射规则 RowMapper<UserModel> rowMap = new RowMapper<UserModel>() { public UserModel mapRow(ResultSet rs, int i) throws SQLException { UserModel userModel = new UserModel(); userModel.setAge(rs.getInt("age")); userModel.setName(rs.getString("name")); userModel.setId(rs.getInt("id")); return userModel; } }; //List数据用query return jdbcTemplate.query(sql, rowMap,age); } }
调用客户端
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring-config.xml") public class DaoTest { @Resource private UserDAO userDao; @Test public void InsertTest(){ userDao.save(); } @Test public void updateTest(){ userDao.update(30,1); } @Test public void selectCount(){ System.out.println(userDao.countId()); } @Test public void selectNameById(){ System.out.println(userDao.selectIterm(2)); } @Test public void selectUserById() { System.out.println(userDao.selectObjectById(2).getName()); } @Test public void selectObjectList(){ System.out.println(userDao.selectOList(20).get(1).getId()); } }
相关文章推荐
- Java 阻塞的概念
- ADT Bundle 理解开发环境 & Eclipse工具使用技巧
- 从头认识Spring-1.13 注入properties与null
- Your First Java Program
- JAVA-事件处理
- java8的源码
- 创建一个自定义类加载器实现class文件(字节码文件)的加密解密的实例
- Java 局部内部类访问局部变量必须加final关键字
- Java中出现“错误: 编码GBK的不可映射字符”的解决方法
- JAVA启动参数大全之三:非Stable参数
- 怎么知道java多线程都已经运行结束CountDownLatch
- <Java设计模式>—UML类图
- Spring 的 JUnit 单元测试基类:AbstractTransactionalJUnit4SpringContextTests
- Java对象游离
- 从头认识Spring-1.12 注入Map
- SpringMVC+Mongo简单配置
- JAVA之NIO按行读写大文件,完美解决中文乱码问题
- Struts2之文件上传
- java 的文件操作
- java语言读取xml文本中的内容