jdbcTemplate:
首先连接数据库
外部配置
driverClass=oracle.jdbc.OracleDriver
jdbcUrl=jdbc:oracle:thin:@192.168.1.105:1521:orcl
user=ems
password=123456
注意写URL的时候写本机的IP,写localhost的时候在Oracle数据库中服务的配置要写localhost
在
修改
连接测试的代码
public classJDBCTest {private ApplicationContext ctx=null;privateJdbcTemplate jdbcTemplate;
{
ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
}
@Test//测试连接
public void testDataSource() throwsSQLException{
DataSource dataSource=ctx.getBean(DataSource.class);
System.out.println(dataSource.getConnection());
}
}
jdbcTemplate支持的五种方法:
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;
query方法及queryForXXX方法:用于执行查询相关语句;
call方法:用于执行存储过程、函数相关语句。
在xml中配置jdbcTemplate
使用:
packagecom.spring.jdbc;importjava.sql.SQLException;importjavax.sql.DataSource;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.jdbc.core.JdbcTemplate;public classJDBCTest {private ApplicationContext ctx=null;privateJdbcTemplate jdbcTemplate;
{
ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
jdbcTemplate=(JdbcTemplate) ctx.getBean("jdbcTemplate");
}
@Test//测试连接
public void testDataSource() throwsSQLException{
DataSource dataSource=ctx.getBean(DataSource.class);
System.out.println(dataSource.getConnection());
}
@Testpublic voidtestUpdate(){
String sql="update employees set last_name=? where id=?";
jdbcTemplate.update(sql,"Jack",2);
}
}
批量修改:
//批量修改
@Testpublic voidtestBatchUpdate(){
String sql="insert into employees(last_name,deptid) values(?,?)";
List batchArgs=new ArrayList();
batchArgs.add(new Object[]{"AA",1});
batchArgs.add(new Object[]{"BB",2});
jdbcTemplate.batchUpdate(sql,batchArgs);
}
NamedParameterJdbcTemplate:具名参数,该对象可以使用具名参数
配置bean
Java测试:
packagecom.spring.jdbc;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importjavax.sql.DataSource;importorg.junit.Test;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importorg.springframework.jdbc.core.JdbcTemplate;importorg.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;public classJDBCTest {private ApplicationContext ctx=null;privateNamedParameterJdbcTemplate namedParameterJdbcTemplate;
{
ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
namedParameterJdbcTemplate=ctx.getBean(NamedParameterJdbcTemplate.class);
}
@Testpublic voidtestNamedParameterJdbcTemplate(){
String sql="insert into employees(id,last_name,email,deptid) values(:a,:ln,:email,:id)";
Map paramMap=new HashMap();
paramMap.put("a", 3);
paramMap.put("ln", "FF");
paramMap.put("email", "3@qq.com");
paramMap.put("id", 2);
namedParameterJdbcTemplate.update(sql, paramMap);
}
}
改进:
public void testNamedParameterJdbcTemplate2(){
String sql="insert into employees(id,last_name,email,deptid) values(:id,:lastname,:email,:deptid)";
Employees employee=new Employees();
employee.setLastName("haha");
employee.setEmail("4@qq.com");
employee.setDeptId(5);
SqlParameterSource parameterSource=new BeanPropertySqlParameterSource(employee);
namedParameterJdbcTemplate.update(sql, parameterSource);
}
参数名就是对象的 属性。然后直接传入属性。