数据库连接池
连接Spring和Mysql,充当一个转换容器,临时存储原生的mysql语句操作
增删改查功能设计
思路
- 创建接口及实现类
- 创建数据库层的class
- 创建外部类调用接口功能
JdbcTemplate方法
update函数
update(String sql,Object … args)
- sql语句
- 可变参数设置语句值(传递给?)
queryForObject函数
queryForObject(String sql,Class requiredType)
- sql语句
- 返回的类型class
查询表里面有多少条记录,返回是某个值
queryForObject返回查询对象
queryForObject(String sql,RowMspper rowMapper,Object… args) - sql语句
- RowMsppper接口
- 可变参数
配置数据连接池
导入需要的依赖jar包
配置数据库连接池
<!-- 数据库连接池 阿里 mysql--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/jdbctest?useUnicode=true&characterEncoding=utf8" /> <property name="username" value="root" /> <property name="password" value="password" /> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> </bean> <!-- jdbc template对象注入--> <bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 注入datasource--> <property name="dataSource" ref="dataSource"></property> </bean> <!--组件扫描--> <context:component-scan base-package="service,entity,dao"> </context:component-scan>
创建与数据库表对应的类(entity)
创建一个book类对应mysql中的bookuser表
package entity; public class Book { private String username,userpassword; private int id; public void setUsername(String username) { this.username = username; } public void setUserpassword(String userpassword) { this.userpassword = userpassword; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public String getUserpassword() { return userpassword; } public int getId() { return id; } }
配置接口及实现类(interface)
接口
接口定义数据库表的增、删、改、查方法
package dao; import entity.Book; public interface BookDao { public void add(Book book);//添加book表数据 public void updatebook(Book book);//修改表数据 public void deletebook(Book book);//删除数据 public int selecCount();//查询数据库 }
接口实现类
实现接口的方法
package dao; import entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository public class BookDaoImpl implements BookDao { @Autowired public JdbcTemplate jdbctemplate; @Override public void add(Book book) { String sql="insert into bookuser values(?,?,?)";//原生语句 添加数据 ?为参数的传输 Object[] args={book.getUsername(),book.getUserpassword(),book.getId()}; int update=jdbctemplate.update(sql,args);//成功返回1 System.out.println(update); } @Override public void updatebook(Book book) { String sql="update bookuser set username=?,userpassword=? where id=?";//原生语句 修改数据 Object[] args={book.getUsername(),book.getUserpassword(),book.getId()};//只修改用户名使用get int update=jdbctemplate.update(sql,args); System.out.println(update); } @Override public void deletebook(Book book) { String sql="delete from bookuser where id=?";//原生语句 删除数据 Object[] args={book.getId()}; int update=jdbctemplate.update(sql,args); System.out.println(update); } @Override public int selecCount() { String sql="select count(*) from bookuser"; Integer count=jdbctemplate.queryForObject(sql,Integer.class);//第二个参数为返回的类型 return count; } }
调用接口功能(service)
package service; import dao.BookDao; import entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service //自动注解把类名的首字母小写 public class BookService { @Autowired private BookDao bookdao; public void addBook(Book book) { bookdao.add(book);//添加 } public void updateBook(Book book) { bookdao.updatebook(book);//更新 } public void deleteBook(Book book) { bookdao.deletebook(book);//删除 } public void selectCount() { bookdao.selecCount();//返回查询的结果 } }
main方法中实现
ApplicationContext context4=new ClassPathXmlApplicationContext("bean06.xml"); BookService jdbc=context4.getBean("bookService",BookService.class);//自动注解 System.out.println(jdbc);//已执行 Book user01=new Book();//添加的数据 user01.setUsername("yma16"); user01.setUserpassword("password"); user01.setId(666);//条件 jdbc.addBook(user01);//实现接口 System.out.println("insert成功!"); Book user02=new Book();//修改的数据 user02.setUsername("修改的用户名"); user02.setUserpassword("修改的密码"); user02.setId(666);//条件 jdbc.updateBook(user02);//实现修改的接口 System.out.println("update成功!"); //查询的数据 jdbc.selectCount();//实现查询的接口 System.out.println("查询成功!");
增、删、改、查测试成功!
查看mysql中的bookuser表已更新!
代码:我的github仓库
end