时间:2021-07-01 10:21:17 帮助过:38人阅读
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中的JDBC连接与直接使用JDBC去连接还是有所差别的,Spring对JDBC做了大量封装,消除了冗余代码,使得开发量大大减少。下面举个例子简单认识Spring中的JDBC操作。
需要的jar包:
目录结构:
- SET NAMES utf8mb4;
- SET FOREIGN_KEY_CHECKS = 0;
- -- ----------------------------
- -- Table structure for user
- -- ----------------------------
- DROP TABLE IF EXISTS `user`;
- CREATE TABLE `user` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- `age` int(100) NULL DEFAULT NULL,
- `birthday` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- `tall` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
- PRIMARY KEY (`id`) USING BTREE
- ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
- -- ----------------------------
- -- Records of user
- -- ----------------------------
- INSERT INTO `user` VALUES (1, ‘张三‘, 18, ‘2000-11-12‘, ‘180‘);
- INSERT INTO `user` VALUES (2, ‘李四‘, 19, ‘1998-05-23‘, ‘178‘);
- INSERT INTO `user` VALUES (3, ‘王五‘, 20, ‘1997-09-03‘, ‘189‘);
- INSERT INTO `user` VALUES (4, ‘Tom‘, 21, ‘1996-01-21‘, ‘176‘);
- INSERT INTO `user` VALUES (5, ‘Jike‘, 17, ‘2001-01-23‘, ‘173‘);
- SET FOREIGN_KEY_CHECKS = 1;
Dao层:
- package demo10.dao;
- import demo10.pojo.User;
- /**
- * @Author
- * @Date 2020/7/2 15:24
- * @Version 1.0
- */
- public interface UserDao {
- /*
- * 添加
- * */
- boolean addUser(User user);
- /*
- * 删除
- * */
- boolean deleteUser(Integer id);
- /*
- * 修改
- * */
- boolean updateUser(User user);
- /*
- * 查询
- * */
- User findUserById(Integer id);
- }
Impl:
- package demo10.dao.impl;
- import demo10.dao.UserDao;
- import demo10.pojo.User;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.jdbc.core.JdbcTemplate;
- /**
- * @Author
- * @Date 2020/7/2 15:35
- * @Version 1.0
- */
- public class UserDaoImpl implements UserDao {
- @Autowired
- private JdbcTemplate jdbcTemplate;
- public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
- this.jdbcTemplate = jdbcTemplate;
- }
- @Override
- public boolean addUser(User user) {
- boolean flag = false;
- String addSql = "insert into user values(?,?,?,?,?)";
- int row = jdbcTemplate.update(addSql,user.getId(),user.getName(),user.getAge(),user.getBirthday(),user.getTall());
- if(row > 0){
- flag = true;
- }
- return flag;
- }
- @Override
- public boolean deleteUser(Integer id) {
- boolean flag = false;
- String deleteSql = "delete from user where id = ?";
- int row = jdbcTemplate.update(deleteSql,id);
- if(row > 0){
- flag = true;
- }
- return flag;
- }
- @Override
- public boolean updateUser(User user) {
- boolean flag = false;
- String updateSql = "update user set name = ?,age = ?,birthday = ? ,tall =? where id = ?";
- int row = jdbcTemplate.update(updateSql,user.getName(),user.getAge(),user.getBirthday(),user.getTall(),user.getId());
- if(row > 0){
- flag = true;
- }
- return flag;
- }
- @Override
- public User findUserById(Integer id) {
- User user = new User();
- // String findAllSql="select * from user where id=?";
- return user;
- }
- }
Pojo:
- package demo10.pojo;
- /**
- * @Author
- * @Date 2020/7/2 15:21
- * @Version 1.0
- */
- public class User {
- private Integer id;
- private String name;
- private Integer age;
- private String birthday;
- private String tall;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- public String getBirthday() {
- return birthday;
- }
- public void setBirthday(String birthday) {
- this.birthday = birthday;
- }
- public String getTall() {
- return tall;
- }
- public void setTall(String tall) {
- this.tall = tall;
- }
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", name=‘" + name + ‘\‘‘ +
- ", age=" + age +
- ", birthday=‘" + birthday + ‘\‘‘ +
- ", tall=‘" + tall + ‘\‘‘ +
- ‘}‘;
- }
- }
Service:
- package demo10.service;
- import demo10.pojo.User;
- import java.util.List;
- /**
- * @Author
- * @Date 2020/7/2 15:41
- * @Version 1.0
- */
- public interface UserService {
- /*
- * 添加
- * */
- boolean addUser(User user);
- /*
- * 删除
- * */
- boolean deleteUser(Integer id);
- /*
- * 修改
- * */
- boolean updateUser(User user);
- /*
- * 查询
- * */
- User findUserById(Integer id);
- }
ServiceImpl:
- package demo10.service.impl;
- import demo10.dao.UserDao;
- import demo10.pojo.User;
- import demo10.service.UserService;
- import org.springframework.beans.factory.annotation.Autowired;
- /**
- * @Author
- * @Date 2020/7/2 15:42
- * @Version 1.0
- */
- public class UserServiceImpl implements UserService {
- /*
- * Spring自动注入
- * */
- @Autowired
- private UserDao userDao;
- public void setUserDao(UserDao userDao) {
- this.userDao = userDao;
- }
- @Override
- public boolean addUser(User user) {
- return userDao.addUser(user);
- }
- @Override
- public boolean deleteUser(Integer id) {
- return userDao.deleteUser(id);
- }
- @Override
- public boolean updateUser(User user) {
- return userDao.updateUser(user);
- }
- @Override
- public User findUserById(Integer id) {
- return userDao.findUserById(id);
- }
- }
junit:
- package demo10.junit;
- import demo10.pojo.User;
- import demo10.service.UserService;
- import org.junit.Before;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- /**
- * @Author
- * @Date 2020/7/2 15:56
- * @Version 1.0
- */
- public class UserTest {
- private ApplicationContext ac;
- User user = new User();
- /**
- * 加载配置文件
- */
- @Before
- public void into(){
- ac = new ClassPathXmlApplicationContext("jdbc.xml");
- }
- @Test
- public void userAddTest(){
- user.setId(7);
- user.setName("BEYOND");
- user.setAge(48);
- user.setBirthday("1975-06-25");
- user.setTall("176");
- UserService userService = (UserService)ac.getBean("userService");
- boolean boo = userService.addUser(user);
- System.out.println(boo);
- }
- @Test
- public void userDeletsTest(){
- UserService userService=(UserService)ac.getBean("userService");
- boolean boo = userService.deleteUser(176);
- System.out.println(boo);
- }
- @Test
- public void userUpdate(){
- User user = new User();
- user.setId(7);
- user.setName("dupo");
- user.setAge(23);
- user.setBirthday("1997-06-13");
- user.setTall("178");
- UserService userService = (UserService)ac.getBean("userService");
- boolean boo = userService.updateUser(user);
- System.out.println(boo);
- }
- @Test
- public void userFindAll(){
- }
- }
—————————————————————————————————————— 完毕--————————————————————————————————————————————————
Spring入门案例之JDBC(五)
标签:rman 实现 使用 返回 跨平台 beans mic java程序 ash