分层思想+mybatis相关的集成
一、分层思想
1、controller层
接收请求
(调用service层,返回结果)
响应结果
2、service层
业务逻辑判断
3.mapper层
接口类
mapper.xml
mybatis与数据库的相关操作
4.entity(po、model)
JavaBean实体
5.util
工具类
6.test
测试类/方法
二、mybatis相关集成操作
有些文件可以保存,下次可以直接复制粘贴来使用。
1.mybatis配置文件
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> <!-- properties 标签中的配置可以供整个配置文件使用,在任何位置都可以引入其中配置的值。 properties 标签可以通过子标签 property 标签来配置一些子元素信息,也可以配置外部的动态文件。 --> <properties resource="mysql.properties"/> <!-- 也可以配置 url,但是 url和resource只能存在一个 --> <!-- 类型别名 --> <!-- <typeAliases>--> <!-- <typeAlias type="com.xxxx.entity.User" alias="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> <!--映射文件方式1.一个一个的配置--> <!-- <mapper resource="com/xxxx/mapper/UserMapper.xml"/>--> <!-- <mapper class="com.xxxx.mapper.UserMapper"/>--> <!--映射文件方式2.自动扫描包内的Mapper接口和配置文件--> <package name="com.xxxx.mapper"/> </mappers> </configuration>
2.mysql.properties
根据自己的信息进行修改
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/course?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8 username=root password=123456
3.GetSqlSession.java
package com.xxxx.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对象 */ public static SqlSession createSqlSession(){ SqlSessionFactory sqlSessionFactory=null; InputStream input=null; SqlSession session=null; try{ //获取mybatis的环境配置文件 注意路径 String resource = "mybatis-config.xml"; //以流的方式获取resource(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()); // } }
4.UserMapper.java
package com.xxxx.mapper; import com.xxxx.entity.User; /** *用户接口类 */ public interface UserMapper { public User queryUserByName(String uname); }
5.UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.UserMapper"> <!-- id:对应Dao层接口方法名 paraterType:指定输入参数类型 --> <!-- userGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中--> <select id="queryUserByName" parameterType="String" resultType="com.xxxx.entity.User"> select * from tb_user where uname = #{uname} </select> </mapper>
6.test(可以建立一个Test.java文件进行测试)
package com.xxxx.test; import com.xxxx.entity.User; import com.xxxx.mapper.UserMapper; import com.xxxx.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("admin"); System.out.println(user); } }
如果控制台有输出,就说明配置完成了,可以进行使用了,特别要注意名字要对应,还有数据库的名字也要对应上。
Mybatis可能出现的问题:无法加载mybatis包:java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources
java.lang.ClassNotFoundException: org.apache.ibatis.io.Resources - yuanse - 博客园 (cnblogs.com)