分层思想(解耦:高内聚低耦合)
controller层
接收请求
(调用service层,返回结果)
响应结果
service层
业务逻辑判断
mapper(dao)
接口类
mapper.xml(Mybatis与数据库的相关操作)
entity(po、model)
JaveBean实体
util
工具类(通用的方法/类)
test
测试类/方法
以我的用户表为例
在entity实体类层创建【User实体类】
package com.esms.entity;
/**
* User实体类
*/
public class User {
private Integer userId; //用户编号
private String userName; //用户名
private String userPwd; //密码
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--首先解析namespace:命名空间,此属性通常用来映射Dao(Mapper)层接口-->
<mapper namespace="com.esms.mapper.UserMapper">
<!--id:对应Dao(Mapper)层接口方法名 parameterType:执行输入参数类型-->
<select id="queryUserByName" parameterType="String" resultType="User">
select * from tb_user where userName = #{userName}
</select>
</mapper>
UserMapper接口类
package com.esms.mapper;
import com.esms.entity.User;
/**
* 用户接口类
*/
public interface UserMapper {
/*User:与.xml(映射文件)文件中的resulType的类型一致
* queryUserByName:接口的名字和.xml文件(映射文件)的id一致*/
public User queryUserByName(String userName);
}
mysql.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/login?serverTimezone=UTC&usessL-false&characterEncoding=UTF-8
username=root
password=qq053531
driver:mysql驱动,我的版本是8,如果是mysql5的话为driver=com.mysql.jdbc.Driver。
url:我的数据库是login,这里改成你自己的数据库名,其他的不用改。
username:数据库用户名
password:数据库密码
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
peoperties 标签中的配置可以提供整个配置文件使用,在任何位置都可以引入其中配置的值。
properties 标签可以通过子标签property标签来配置一些子元素信息,也可以配置外部的动态文件。
-->
<properties resource="mysql.properties"/><!--也可以配置url,但url和resource只能存在一个-->
<!--类型别名
UserMapper.xml文件中的resultType属性值
-->
<typeAliases>
<typeAlias alias="User" type="com.esms.entity.User"/>
</typeAliases>
<!--对事务的管理和连接池的配置-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--mappers映射器-->
<mappers>
<!--自动扫描包内的Mapper接口与配置文件-->
<package name="com.esms.mapper"/>
</mappers>
</configuration>
在util层创建GetSqlSession
GetSqlSession.java
package com.esms.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class GetSqlSession {
/**
* 获取SqlSession对象
* @return
*/
public static SqlSession createSqlSession() {
SqlSessionFactory sqlSessionFactory = null;
InputStream input = null;
SqlSession session = null;
try {
//获得mybatis的环境配置文件
String resource = "mybatis-config.xml";
//以流的方式获取recource(mybatis环境配置文件)
input = Resources.getResourceAsStream(resource);
//创建会话工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(input);
//通过工厂得到SqlSession
session = sqlSessionFactory.openSession();
return session;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
System.out.println(createSqlSession());
}
}
执行底部的main方法,控制台成功输出则说明mysql和mybatis的环境配置成功,恭喜!
下面我们可以在test层新建一个测试类进行测试
Test.java
package com.esms.test;
import com.esms.entity.User;
import com.esms.mapper.UserMapper;
import com.esms.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;
public class Test {
public static void main(String[] args) {
//获取sqlSession对象
SqlSession session = GetSqlSession.createSqlSession();
//得到对应的Mapper
UserMapper userMapper = session.getMapper(UserMapper.class);
//调用方法,返回用户对象
User user = userMapper.queryUserByName("wxx");
System.out.println(user);
}
}
控制台成功输出则说明Mybatis集成成功!
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁