当前位置:Gxlcms > 数据库问题 > Spring入门案例之JDBC(五)

Spring入门案例之JDBC(五)

时间:2021-07-01 10:21:17 帮助过:38人阅读

增删改查

数据库连接JDBC

JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。

JDBC连接数据库的流程及其原理如下:

(1)在开发环境中加载指定数据库的驱动程序。不如你使用的是MySQL,那么需要去下载MySQL支持JDBC的驱动程序(mysql-connector-java-5.1.18-bin.jar)。

(2)在Java程序中加载驱动程序。在Java程序中,可以通过“Class.forName("指定数据库的驱动程序")”的方式来加载添加到开发环境中的驱动程序,例如加载MySQL的数据驱动程序的代码为Class.forName("com.mysql.jdbc.Driver")。

(3)创建数据连接对象。通过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法根据数据库的URL、用户名和密码,创建一个JDBC Connection对象,例如:Connection connection = DriverManager.getConnection("连接数据库的URL","用户名","密码")。其中URL = 协议名 + IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库所使用的用户名和密码。

(4)创建Statement对象。Statement类的主要是用于执行静态SQL语句并返回它所生成结果的对象。通过Connection对象的createStatement()方法可以创建一个Statement对象。例如:Statement statement = connection.createStatement()。

(5)调用Statement对象的相关方法执行相对应的SQL语句。通过execuUpdate方法来对数据更新,包括插入和删除等操作;通过调用Statement对象的executeQuery方法进行数据的查询,而查询的结果会得到ResultSet对象,ResultSet表示执行查询数据库返回的数据的集合,ResultSet对象具有可以指向当前数据行的指针。通过该对象的next方法,使得指针指向下一行,然后将数据以列号或者字段名取出,如果next方法返回null,则表示下一行中没有数据存在。

(6)关闭数据库连接。使用完数据库或者不需要访问数据库时,通过Connection的close方法及时关闭数据库连接。

Spring连接数据库程序实现

 Spring中的JDBC连接与直接使用JDBC去连接还是有所差别的,Spring对JDBC做了大量封装,消除了冗余代码,使得开发量大大减少。下面举个例子简单认识Spring中的JDBC操作。

需要的jar包:

技术图片

 

 

目录结构:

技术图片

 

 

 

 

一:创建表结构:

  1. SET NAMES utf8mb4;
  2. SET FOREIGN_KEY_CHECKS = 0;
  3. -- ----------------------------
  4. -- Table structure for user
  5. -- ----------------------------
  6. DROP TABLE IF EXISTS `user`;
  7. CREATE TABLE `user` (
  8. `id` int(11) NOT NULL AUTO_INCREMENT,
  9. `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  10. `age` int(100) NULL DEFAULT NULL,
  11. `birthday` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  12. `tall` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  13. PRIMARY KEY (`id`) USING BTREE
  14. ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
  15. -- ----------------------------
  16. -- Records of user
  17. -- ----------------------------
  18. INSERT INTO `user` VALUES (1, ‘张三‘, 18, ‘2000-11-12‘, ‘180‘);
  19. INSERT INTO `user` VALUES (2, ‘李四‘, 19, ‘1998-05-23‘, ‘178‘);
  20. INSERT INTO `user` VALUES (3, ‘王五‘, 20, ‘1997-09-03‘, ‘189‘);
  21. INSERT INTO `user` VALUES (4, ‘Tom‘, 21, ‘1996-01-21‘, ‘176‘);
  22. INSERT INTO `user` VALUES (5, ‘Jike‘, 17, ‘2001-01-23‘, ‘173‘);
  23. SET FOREIGN_KEY_CHECKS = 1;

  Dao层:

  1. package demo10.dao;
  2. import demo10.pojo.User;
  3. /**
  4. * @Author
  5. * @Date 2020/7/2 15:24
  6. * @Version 1.0
  7. */
  8. public interface UserDao {
  9. /*
  10. * 添加
  11. * */
  12. boolean addUser(User user);
  13. /*
  14. * 删除
  15. * */
  16. boolean deleteUser(Integer id);
  17. /*
  18. * 修改
  19. * */
  20. boolean updateUser(User user);
  21. /*
  22. * 查询
  23. * */
  24. User findUserById(Integer id);
  25. }

 Impl:

  1. package demo10.dao.impl;
  2. import demo10.dao.UserDao;
  3. import demo10.pojo.User;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. /**
  7. * @Author
  8. * @Date 2020/7/2 15:35
  9. * @Version 1.0
  10. */
  11. public class UserDaoImpl implements UserDao {
  12. @Autowired
  13. private JdbcTemplate jdbcTemplate;
  14. public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
  15. this.jdbcTemplate = jdbcTemplate;
  16. }
  17. @Override
  18. public boolean addUser(User user) {
  19. boolean flag = false;
  20. String addSql = "insert into user values(?,?,?,?,?)";
  21. int row = jdbcTemplate.update(addSql,user.getId(),user.getName(),user.getAge(),user.getBirthday(),user.getTall());
  22. if(row > 0){
  23. flag = true;
  24. }
  25. return flag;
  26. }
  27. @Override
  28. public boolean deleteUser(Integer id) {
  29. boolean flag = false;
  30. String deleteSql = "delete from user where id = ?";
  31. int row = jdbcTemplate.update(deleteSql,id);
  32. if(row > 0){
  33. flag = true;
  34. }
  35. return flag;
  36. }
  37. @Override
  38. public boolean updateUser(User user) {
  39. boolean flag = false;
  40. String updateSql = "update user set name = ?,age = ?,birthday = ? ,tall =? where id = ?";
  41. int row = jdbcTemplate.update(updateSql,user.getName(),user.getAge(),user.getBirthday(),user.getTall(),user.getId());
  42. if(row > 0){
  43. flag = true;
  44. }
  45. return flag;
  46. }
  47. @Override
  48. public User findUserById(Integer id) {
  49. User user = new User();
  50. // String findAllSql="select * from user where id=?";
  51. return user;
  52. }
  53. }

  Pojo:

  1. package demo10.pojo;
  2. /**
  3. * @Author
  4. * @Date 2020/7/2 15:21
  5. * @Version 1.0
  6. */
  7. public class User {
  8. private Integer id;
  9. private String name;
  10. private Integer age;
  11. private String birthday;
  12. private String tall;
  13. public Integer getId() {
  14. return id;
  15. }
  16. public void setId(Integer id) {
  17. this.id = id;
  18. }
  19. public String getName() {
  20. return name;
  21. }
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25. public Integer getAge() {
  26. return age;
  27. }
  28. public void setAge(Integer age) {
  29. this.age = age;
  30. }
  31. public String getBirthday() {
  32. return birthday;
  33. }
  34. public void setBirthday(String birthday) {
  35. this.birthday = birthday;
  36. }
  37. public String getTall() {
  38. return tall;
  39. }
  40. public void setTall(String tall) {
  41. this.tall = tall;
  42. }
  43. @Override
  44. public String toString() {
  45. return "User{" +
  46. "id=" + id +
  47. ", name=‘" + name + ‘\‘‘ +
  48. ", age=" + age +
  49. ", birthday=‘" + birthday + ‘\‘‘ +
  50. ", tall=‘" + tall + ‘\‘‘ +
  51. ‘}‘;
  52. }
  53. }

  Service:

  1. package demo10.service;
  2. import demo10.pojo.User;
  3. import java.util.List;
  4. /**
  5. * @Author
  6. * @Date 2020/7/2 15:41
  7. * @Version 1.0
  8. */
  9. public interface UserService {
  10. /*
  11. * 添加
  12. * */
  13. boolean addUser(User user);
  14. /*
  15. * 删除
  16. * */
  17. boolean deleteUser(Integer id);
  18. /*
  19. * 修改
  20. * */
  21. boolean updateUser(User user);
  22. /*
  23. * 查询
  24. * */
  25. User findUserById(Integer id);
  26. }

  ServiceImpl:

  1. package demo10.service.impl;
  2. import demo10.dao.UserDao;
  3. import demo10.pojo.User;
  4. import demo10.service.UserService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. /**
  7. * @Author
  8. * @Date 2020/7/2 15:42
  9. * @Version 1.0
  10. */
  11. public class UserServiceImpl implements UserService {
  12. /*
  13. * Spring自动注入
  14. * */
  15. @Autowired
  16. private UserDao userDao;
  17. public void setUserDao(UserDao userDao) {
  18. this.userDao = userDao;
  19. }
  20. @Override
  21. public boolean addUser(User user) {
  22. return userDao.addUser(user);
  23. }
  24. @Override
  25. public boolean deleteUser(Integer id) {
  26. return userDao.deleteUser(id);
  27. }
  28. @Override
  29. public boolean updateUser(User user) {
  30. return userDao.updateUser(user);
  31. }
  32. @Override
  33. public User findUserById(Integer id) {
  34. return userDao.findUserById(id);
  35. }
  36. }

  junit:

  1. package demo10.junit;
  2. import demo10.pojo.User;
  3. import demo10.service.UserService;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. /**
  9. * @Author
  10. * @Date 2020/7/2 15:56
  11. * @Version 1.0
  12. */
  13. public class UserTest {
  14. private ApplicationContext ac;
  15. User user = new User();
  16. /**
  17. * 加载配置文件
  18. */
  19. @Before
  20. public void into(){
  21. ac = new ClassPathXmlApplicationContext("jdbc.xml");
  22. }
  23. @Test
  24. public void userAddTest(){
  25. user.setId(7);
  26. user.setName("BEYOND");
  27. user.setAge(48);
  28. user.setBirthday("1975-06-25");
  29. user.setTall("176");
  30. UserService userService = (UserService)ac.getBean("userService");
  31. boolean boo = userService.addUser(user);
  32. System.out.println(boo);
  33. }
  34. @Test
  35. public void userDeletsTest(){
  36. UserService userService=(UserService)ac.getBean("userService");
  37. boolean boo = userService.deleteUser(176);
  38. System.out.println(boo);
  39. }
  40. @Test
  41. public void userUpdate(){
  42. User user = new User();
  43. user.setId(7);
  44. user.setName("dupo");
  45. user.setAge(23);
  46. user.setBirthday("1997-06-13");
  47. user.setTall("178");
  48. UserService userService = (UserService)ac.getBean("userService");
  49. boolean boo = userService.updateUser(user);
  50. System.out.println(boo);
  51. }
  52. @Test
  53. public void userFindAll(){
  54. }
  55. }

  技术图片

 

 技术图片

 

—————————————————————————————————————— 完毕--————————————————————————————————————————————————

Spring入门案例之JDBC(五)

标签:rman   实现   使用   返回   跨平台   beans   mic   java程序   ash   

人气教程排行