EmpDao接口引入spring-jdbc、mysql、c3p0依赖
public class AppTest {
@Test
public void test01() throws PropertyVetoException {
//创建数据库
ComboPooledDataSource dataSource = new ComboPooledDataSource();
//四大参数
// 驱动
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
//url
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/kkbdb?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false");
// 用户名
dataSource.setUser("root");
// 密码
dataSource.setPassword("123456");
//使用
JdbcTemplate template = new JdbcTemplate(dataSource);
String sql = "insert into emp(name,salary) values(?,?)";
int i = template.update(sql, "李白", 2000);
System.out.println(i);
}
}
配置文件不支持特殊符合
&-->&
利用配置文件(交给spring来管理)
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/kkbdb?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 注入-->
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="empDaoImpl" class="com.kkb.spring.dao.EmpDaoImpl">
<!-- 注入-->
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
EmpDao接口
public interface EmpDao {
int insertEmp(Emp emp);
int deleteEmp(Emp emp);
int updateEmp(Emp emp);
int getCount();
Map<String,Object> getMap();
}
EmpDao实现类
public class EmpDaoImpl implements EmpDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public int insertEmp(Emp emp) {
String sql = "insert into emp(name,salary) values(?,?);";
return jdbcTemplate.update(sql,emp.getName(),emp.getSalary());
}
@Override
public int deleteEmp(Emp emp) {
String sql = "delete from emp where id = ?";
return jdbcTemplate.update(sql,emp.getId());
}
@Override
public int updateEmp(Emp emp) {
String sql = "update emp set name = ?,salary = ? where id = ?;";
return jdbcTemplate.update(sql,emp.getName(),emp.getSalary(),emp.getId());
}
@Override
public int getCount() {
String sql = "select count(id) from emp;";
return jdbcTemplate.queryForObject(sql,Integer.class);
}
@Override
public Map<String, Object> getMap() {
String sql = "select max(id),min(id) from emp";
// map<复合函数的名字,具体数值>
return jdbcTemplate.queryForMap(sql);
}
}
测试
@Test
public void test02(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
EmpDaoImpl empDaoImpl = (EmpDaoImpl) applicationContext.getBean("empDaoImpl");
Emp emp = new Emp();
//添加
// emp.setName("王凯");
// emp.setSalary(50.2);
// int i = empDaoImpl.insertEmp(emp);
//更新
// emp.setName("二维年华");
// emp.setId(7);
// int i = empDaoImpl.updateEmp(emp);
//删除
// emp.setId(7);
// int i = empDaoImpl.deleteEmp(emp);
// int count = empDaoImpl.getCount();
//把map进行遍历,转成一个set进行遍历
Map<String, Object> map = empDaoImpl.getMap();
Set<Map.Entry<String, Object>> entries = map.entrySet();
for(Map.Entry<String,Object> entry: entries){
System.out.println(entry.getKey()+"------------"+entry.getValue());
}
}