栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

企业级智能软件开发(二)——Mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

企业级智能软件开发(二)——Mybatis

目录
  • MyBatis简介
    • 使用数据库专门存放数据
    • JAVA使用JDBC连接数据库
    • 使用JDBC简单操作数据库
    • MyBatis工作流
    • 使用MyBatis简单操作数据库

MyBatis简介
  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
    官网
使用数据库专门存放数据

我们在开发过程中要把数据和代码分离出来,数据使用数据库进行存放。
使用数据库的好处:

应用与数据分离
便于数据的集中管理
利于应用程序的开发和维护

这里我们主要使用数据库的增删改查操作:

1.增
INSERT INTO 表名("属性名1","属性名2","属性名3","属性名4") VALUES("实例1","实例2","实例3","实例4");
2.删
DELETe FROM 表名 WHERe 条件;
3.改
UPDATe 表名 SET "属性名"="实例" WHERe 条件;
4.查
SELECT * FROM 表名 WHERe 条件;
JAVA使用JDBC连接数据库

JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
连接不同数据库时使用数据库厂商提供的驱动:

使用JDBC简单操作数据库

步骤1:使用Navicat Premium 新建数据库创建t_user表


步骤2:在EClipse中新建Maven文件

说明:
数据库驱动其实就是对JDBC规范的实现,就是一个jar包。
通过Maven依赖引入
注意驱动要和数据库版本匹配
MySQL数据库要5.7以上才能用8.0的依赖
如果你的MySQL数据库5.7以下,请使用5.x的驱动版本

在pom.xml配置文件中加入数据库驱动

  
  	
    	mysql
    	mysql-connector-java
    	5.1.49
	
  

步骤3:编写JAVABean类User.java

package com.test.bean;

public class User {

	private Integer id;
	private String username;
	private String password;
	private String realName;
	private String phone;
	private String email;
	private Integer status;
	private String tx;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRealName() {
		return realName;
	}
	public void setRealName(String realName) {
		this.realName = realName;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public String getTx() {
		return tx;
	}
	public void setTx(String tx) {
		this.tx = tx;
	}
	
	
	
}

步骤3:编写JDBC类UserJDBC.java

package com.test.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.test.bean.User;

public class UserJDBC {
	
	public static void main(String[] args) throws Exception {
		UserJDBC userjdbc = new UserJDBC();
		User user = userjdbc.getUserById(2);
		System.out.println("查询到该用户的用户名为:" + user.getUsername());
	}

	public User getUserById(Integer id) throws Exception {
		//1、导入驱动jar包
        //2、注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //3、获取数据库的连接对象
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "123456");

        //4、定义sql语句
        String sql = "select * from t_user where id=" + id;

        //5、获取执行sql语句的对象
        Statement stat = con.createStatement();

        //6、执行sql并接收返回结果
        ResultSet rs = stat.executeQuery(sql);

        //7、处理结果
        User user = null;
        if(rs.next()) {
        	user = new User();
        	user.setId(rs.getInt(1));
        	user.setUsername(rs.getString(2));
        	user.setPassword(rs.getString(3));
        	user.setRealName(rs.getString(4));
        	
        }

        //8、释放资源
        stat.close();
        con.close();
        
        return user;
	}
}

运行结果:

简单的操作JDBC实现去获取数据库数据的操作我们发现JDBC八股文的缺点非常明显:

抽象程度不够,编程比较麻烦。 JDBC比较死板工,当数据库的属性名有几百个时,需要也大量相同的下列代码,工作量非常的大。

使用MyBatis

MyBatis可以解决JDBC的弊端,以下代码MyBatis仅仅使用两行代码就可以搞定。

			user = new User();
        	user.setId(rs.getInt(1));
        	user.setUsername(rs.getString(2));
        	user.setPassword(rs.getString(3));
        	user.setRealName(rs.getString(4));
MyBatis工作流

MyBatis工作流1:

MyBatis工作流2:

使用MyBatis简单操作数据库

  1. 创建新的Maven项目MybatisTest
  2. 在pom.xml引入Mybatis依赖

    
    	mysql
    	mysql-connector-java
    	5.1.49
	
  			
	
	    org.mybatis
	    mybatis
	    3.5.6
	
  
  1. 增加主配置文件mybatis-config.xml切换到source模式加入代码



  
    
      
      
        
        
        
        
        
      
    
  
  
  
  	
    
  


  1. 编写用户表对应的实体类User.java
package com.test.bean;

public class User {

	private Integer id;
	private String username;
	private String password;
	private String realName;
	private String phone;
	private String email;
	private Integer status;
	private String tx;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRealName() {
		return realName;
	}
	public void setRealName(String realName) {
		this.realName = realName;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
	public String getTx() {
		return tx;
	}
	public void setTx(String tx) {
		this.tx = tx;
	}
	
	
	
}

  1. 数据操作对象 UserDao.java
package com.test.dao;

import org.apache.ibatis.annotations.Select;

import com.test.bean.User;


public interface UserDao {

	
	@Select("select * from t_user where id=#{id}")
	public User getUserById(Integer id);
}
  1. 测试类 MybatisTest.java
package com.test.dao;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.test.bean.User;

public class MybatisTest {

	public static void main(String[] args) {
		//读取配置文件
		InputStream inputStream = MybatisTest.class.getClassLoader().getResourceAsStream("mybatis-config.xml");
		//根据配置文件创建SqlSessionFactory对象,这个相当于JDBC中的数据库连接
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		//创建一个数据库会话,通过会话可以执行SQL
		SqlSession session = sqlSessionFactory.openSession();
		//通过会话获取User表的数据操作对象
		UserDao dao = session.getMapper(UserDao.class);   //动态代理
		
		//以下是根据业务需要进行数据库操作,这里查询了id为1的用户信息
		User zs = dao.getUserById(2);
		System.out.println(zs.getUsername() + ":" + zs.getPhone());
		
		
		
		
		
	}

}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号