Spring 對JDBC的支援
阿新 • • 發佈:2018-12-18
<context:property-placeholder location="classpath:jdbc.properties"/> <!-- 資料庫連結 兩步 一、對映配置檔案 二、c3p0Bean--> <bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${user}"></property> <property name="password" value="${password}"></property> <property name="driverClass" value="${driverClass}"></property> <property name="jdbcUrl" value="${jdbcUrl}"></property> </bean> <!--Jdbc模板方法 --> <bean id="jdbctemplat" class="org.springframework.jdbc.core.JdbcTemplate"> <constructor-arg ref="DataSource"></constructor-arg> </bean> <bean id="Dao" class="com.Greatest.Spring.jdbc.dao.Dao"> <!-- 不需要也不能再 Bean中重寫JdbcTemplate的getter、setter方法 --> <property name="jdbcTemplate" ref="jdbctemplat"></property> <property name="namedParameterJdbcTemplate" ref="nameparameter"></property> </bean> 《具名引數配置 》 <bean id="nameparameter" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="DataSource"></constructor-arg> </bean> <context:component-scan base-package="com"></context:component-scan> •在 SQL 語句中使用具名引數時, 可以在一個 Map 中提供引數值, 引數名為鍵 •也可以使用 SqlParameterSource 引數 •批量更新時可以提供 Map 或 SqlParameterSource 的陣列 public class Dao extends JdbcDaoSupport{ // @Autowired // private DataSource datasource; // JdbcTemplate jdbc=-new JdbcTemplate(datasource); @Autowired private JdbcTemplate jdbctemplate; @Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } public NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() { return namedParameterJdbcTemplate; } //查詢一條資料 public User getUserbyid(int id){ String sql="select * from customers where id=?"; User user=(User) jdbctemplate.queryForObject(sql,new BeanPropertyRowMapper(User.class),id); return user; } //修改一條資料 public void TestUpdate(String name ,int Id){ String sql="update customers set name=? where id=?"; jdbctemplate.update(sql,name,Id); } //刪除一條資料 public void Testdelete(int Id){ String sql="delete from customers where id=?"; jdbctemplate.update(sql,Id); } 批量插入 public void batchUpdate(List<Object[]> list){ String sql="insert into customers(name,password) values(?,?)"; jdbctemplate.batchUpdate(sql, list); } //多行查詢 public List<User> querylist(int password){ String sql="select * from customers where password=?"; RowMapper<User> rowmapper=new BeanPropertyRowMapper(User.class); return jdbctemplate.query(sql, rowmapper, password); } //單值查詢 public String queryOne(int Id){ String sql="select name from customers where id=?"; return jdbctemplate.queryForObject(sql, String.class,Id); } //具名引數 public void update(Map sp){ sp=new HashMap(); String sql="update customers set name=:name and password=:password where id=:id"; getNamedParameterJdbcTemplate().update(sql, sp); } public void insert(Map map){ String sql="insert into customers(name,password) values(:name,:password) "; getNamedParameterJdbcTemplate().update( sql, map ); } } @Test: ApplicationContext apap=new ClassPathXmlApplicationContext("application.xml"); Dao dao=(Dao) apap.getBean(Dao.class); //} @Test public void delete(){ dao.Testdelete(1); } @Test public void update1(){ dao.TestUpdate("呂謙", 1); } @Test public void query(){ User user=dao.getUserbyid(6); System.out.println(user); } @Test public void batchinsert(){ List<Object[]> list=new ArrayList<>(); list.add(new Object []{"矮腳虎 ",6688}); list.add(new Object []{"扈三娘",8866}); list.add(new Object []{"孫二孃",3434}); list.add(new Object []{"菜園子",4343}); dao.batchUpdate( list); } @Test public void querycatch(){ List<User> list=dao.querylist(1212); System.out.println(list); } @Test public void queryOne(){ String name= dao.queryOne(6); System.out.println(name); } //具名引數 @Test public void update(){ Map map=new HashMap(); map.put("name","魯智深"); map.put("password","666"); map.put("id",6); dao.update( map); } //-- @Test public void insert(){ Map map=new HashMap(); map.put("name","潘巧雲"); map.put("password",6666); dao.insert(map); }
具名引數 批量插入