用了一段时间的spring这,闲来没事做一下spring整合jdbc

目录文件

导入jar包

由于spring的jar包是在myeclipse中自动导入的有些暂时用不到的也没有处理。

Emp类

package com.v2uc.entity;

import java.util.Date;

public class Emp {
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private Date hiredate;
private Double sal;
private Double comm;
private Integer deptno; public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public Double getSal() {
return sal;
}
public void setSal(Double sal) {
this.sal = sal;
}
public Double getComm() {
return comm;
}
public void setComm(Double comm) {
this.comm = comm;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
} }

映射文件EmpMapping

package com.v2uc.entity;

import java.sql.ResultSet;
import java.sql.SQLException; import org.springframework.jdbc.core.RowMapper; public class EmpMapping implements RowMapper<Emp> {
public Emp mapRow(ResultSet rs, int rowIndex) throws SQLException{
Emp emp = new Emp();
emp.setEmpno(rs.getInt("EMPNO"));
emp.setEname(rs.getString("ENAME"));
emp.setJob(rs.getString("job"));
emp.setMgr(rs.getInt("MGR"));
emp.setHiredate(rs.getDate("HIREDATE"));
emp.setSal(rs.getDouble("SAL"));
emp.setComm(rs.getDouble("COMM"));
emp.setDeptno(rs.getInt("DEPTNO"));
return emp;
}
}

EmpDao接口

package com.v2uc.dao;

import java.util.List;
import com.v2uc.entity.Emp; public interface EmpDao { public void save(Emp emp);
public void update(Emp emp);
public void delete(int no);
public Emp findByNo(int no);
public List<Emp> findAll(); }

JdbcEmpDao实现

package com.v2uc.dao;

import java.util.List;

import javax.activation.DataSource;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport; import com.v2uc.entity.Emp;
import com.v2uc.entity.EmpMapping; public class JdbcEmpDao extends JdbcDaoSupport implements EmpDao { private DataSource dataSource; public void setDataSource(DataSource dataSource){
this.dataSource = dataSource;
} @Override
public void save(Emp emp) {
// TODO Auto-generated method stub } @Override
public void update(Emp emp) {
// TODO Auto-generated method stub } @Override
public void delete(int no) {
// TODO Auto-generated method stub } @Override
public Emp findByNo(int no) {
// TODO Auto-generated method stub
return null;
} @Override
public List<Emp> findAll() {
String sql = "select * from t_emp";
RowMapper<Emp> mapper = new EmpMapping();
List<Emp> list = super.getJdbcTemplate().query(sql,mapper);
return list;
} }

xml配置

<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" ></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<bean id="jdbcEmpDao1" class="com.v2uc.dao.JdbcEmpDao">
<property name="dataSource" ref="myDataSource"></property>
</bean> </beans>

Test单元测试

package com.v2uc.test;

import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.v2uc.dao.EmpDao;
import com.v2uc.entity.Emp; public class Test { @Test
public void test() {
String conf = "applicationContext.xml";
ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
EmpDao empDao = ac.getBean("jdbcEmpDao1",EmpDao.class);
List<Emp> list = empDao.findAll();
for(Emp emp : list){
System.out.println(emp.getEname());
} } }

遇到问题

mysql 创建连接是 Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4')

Cannot create PoolableConnectionFactory (Unknown character set: 'utf8mb4')

 
maven 依赖换版本
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>

更换5.1.6的jar包即可解决该问题

简单原创地址:http://www.cnblogs.com/maoyali/p/8813710.html

最新文章

  1. 基于注解的Spring AOP入门、增强Advice实例
  2. 使用WKWebView遇到的坑
  3. Linux内核分析第五周学习总结:扒开系统调用的三层皮(下)
  4. 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法
  5. Tempdb的并发阻塞
  6. hdu 5154 Harry and Magical Computer 拓扑排序
  7. MINA的session.close
  8. IOS block 对象强引用和若引用
  9. template might not exist or might not be accessible by any of the configured Template Resolvers
  10. indexer.go
  11. swoole websocket服务推送
  12. TDD:什么是桩(stub)和模拟(mock)?
  13. 框架: Struts2 讲解 1
  14. @JsonIgnore注解可以实现不返回前端字段
  15. Open Cygwin at a specific folder
  16. GIT(1)----更新代码和上传代码操作的步骤
  17. SpringMVC——异常处理
  18. Codeforces Round #546 (Div. 2)D(贪心,思维,SET,VECTOR,模拟)
  19. VisualSVN Server更改SVN版本库存放路径的方法
  20. asp 控件定时器 局部刷新

热门文章

  1. jstack 命令使用经验总结
  2. JDK的安装与配置java环境变量
  3. sql注入之堆叠注入及waf绕过注入
  4. 记一次针对excel导出的优化
  5. Java的equsals和==
  6. shell中cmd1 &amp;&amp; cmd2 || cmd3的含义
  7. Redis实战-详细配置-优雅的使用Redis注解/RedisTemplate
  8. Linux命令(八)之安装Jdk、Tomcat
  9. java中sort方法的自定义比较器写法(转载)
  10. Run Clojure Script with External Dependencies without leiningen