Mybatis简单入门配置

news/2024/12/5 5:11:07/

1. 导入Mybatis包

在github上下载jar包

https://github.com/mybatis/mybatis-3
打开上边的网页,然后拉倒最底下,点击链接进行下载。下载完解压后将mybatis.jar和lib下的所有jar包都进行导入。

Maven配置

https://github.com/mybatis/mybatis-3

里面有关于Mybatis的Maven配置

<dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><groupId>ognl</groupId><artifactId>ognl</artifactId><version>3.3.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.28.0-GA</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version><optional>true</optional></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version><optional>true</optional></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.17.0</version><optional>true</optional></dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version><optional>true</optional></dependency><dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version><optional>true</optional></dependency>
</dependencies>

2. 配置Mybatis

SqlMapConfig.xml文件配置

SqlMapConfig.xml文件是Mbatis的主要配置文件,eclipse将文件放在src/main/java目录下,idea将文件放在resources目录下。

<?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><!-- 配置数据库链接 --><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!-- 配置数据库连接信息 --><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/test" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><!-- 加载POJO类的数据库操作文件 --><mappers><mapper resource="mapper/UserMapper.xml"/></mappers></configuration>

UserMapper.xml文件配置

UserMapper.xml里面编写了对User表的相应操作

<?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">
<!-- 用来区分同名方法的归属 -->
<mapper namespace="userMapper"><!-- id类似于方法名,后边用来指定调用的 --><!-- resultType指定返回的结果类型,mybatis会自动根据变量名进行装配 --><select id="queryAll" resultType="model.User">select * from user</select><!-- parameterType指定传入sql语句的类型,可以为基本数据类型,也可以是封装类型例如Integer --><!-- 注意参数的取值要用花括号{} --><select id="queryById" parameterType="int" resultType="model.User">select * from user where id = #{id}</select><insert id="insert" parameterType="model.User">insert into user(id,name) values(#{id},#{name})</insert><!-- mybatis会根据参数名自动从对象中获取参数值 --><update id="update" parameterType="model.User">update user set name = #{name} where id = #{id}</update><delete id="delete" parameterType="java.lang.Integer">delete from user where id = #{id}</delete></mapper>

3. 测试

3.1 增

	public void insert() {SqlSession session = null;try {String resource = "SqlMapConfig.xml";// 获取核心配置文件信息InputStream inputStream = Resources.getResourceAsStream(resource);// 获取session工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);inputStream.close();// 创建会话,不会自动提交事务session = sqlSessionFactory.openSession();} catch (IOException e) {e.printStackTrace();}User user = new User();user.setId(1);user.setName("hello word");//通过namespace.id来进行查找方法session.insert("userMapper.insert", user);session.commit();if (session != null) {session.close();}}

3.2 删

	public void delete() {SqlSession session = null;try {String resource = "SqlMapConfig.xml";// 获取核心配置文件信息InputStream inputStream = Resources.getResourceAsStream(resource);// 获取session工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);inputStream.close();// 创建会话,不会自动提交事务session = sqlSessionFactory.openSession();} catch (IOException e) {e.printStackTrace();}session.delete("userMapper.delete", 1);session.commit();if (session != null) {session.close();}}

3.3 改

	public void update() {SqlSession session = null;try {String resource = "SqlMapConfig.xml";// 获取核心配置文件信息InputStream inputStream = Resources.getResourceAsStream(resource);// 获取session工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);inputStream.close();// 创建会话,不会自动提交事务session = sqlSessionFactory.openSession();} catch (IOException e) {e.printStackTrace();}User user = new User(10);user.setId(1);user.setName("hello mybatis");session.update("userMapper.update", user);session.commit();if (session != null) {session.close();}}

3.4 查

public void query() {SqlSession session = null;try {String resource = "SqlMapConfig.xml";// 获取核心配置文件信息InputStream inputStream = Resources.getResourceAsStream(resource);// 获取session工厂对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);inputStream.close();// 创建会话,不会自动提交事务session = sqlSessionFactory.openSession();} catch (IOException e) {e.printStackTrace();}List<User> list = session.selectList("userMapper.queryAll");for(User u:list) {System.out.println("id:"+u.getId()+"name:"+u.getName());}if (session != null) {session.close();}}

http://www.ppmy.cn/news/682883.html

相关文章

JNDI配置

1. JNDI配置 第一步需要导入数据库连接需要用到的jar包。 1.1 web.xml配置 在java web项目中的WEB-INF目录下的web.xml中添加数据库资源的引用。 <!-- 配置连接池JNDI的引用 --><resource-ref><description>MySQL DataBase Connection</description&g…

JAVA中JDBC的配置和简单使用

1. 导入jar包 一般在安装mysql时在mysql的文件夹下会有对应的数据库驱动jar包&#xff0c;可以自己找一下&#xff0c;然后手动导入jar包 或者使用maven导入jar包的依赖 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</…

魔力宝贝服务器列表修改,魔力宝贝修改代码一览表GM.docx

.. 魔力宝贝GM代码 宠物 nr additemmax 19505] [nr additemmax 19077] 打开crossgate\gmsv\setup.cf.XXX 打开这个文件 为1指定GM使用 chatmagiccdkeycheck=1 为0开放所有人物为GM [每个人都可以用GM命令] chatmagiccdkeycheck=0 chatmagicpasswd=nr NR为GM的密码,可以自行修改…

计算机管理哪个是主板驱动,请问一下这里面哪个是主板驱动?

2005-07-14 大家请指教,谢谢! 任务&#xff2e;&#xff30;&#xff23;地点&#xff1a;魔力暑期活动员&#xff3b;&#xff17;&#xff10;&#xff0e;&#xff18;&#xff14;&#xff3d;打到水晶地点&#xff1a;魔&#xff1a;灵堂、狗洞、海底、索奇亚沙漠武术仙人…

普遍语言、国际语言和数学家皮亚诺(Peano)——读皮亚诺之一

普遍语言、国际语言和数学家皮亚诺&#xff08;Peano&#xff09;——读皮亚诺之一 自德国人莱布尼兹有了普遍语言的设想之后&#xff0c;逻辑的现代发展&#xff0c;在欧洲&#xff0c;好像走的一条从西到东的路径。英国人布尔用代数来设想逻辑&#xff0c;开创出逻辑学现代发…

malloc 字符串

malloc内存管理机制&#xff1a; ​ 当首次使用malloc申请内存时&#xff0c;malloc会向操作系统申请内存&#xff0c;操作系统会直接给malloc分配33页&#xff08;一页 4096字节&#xff09;内存交给malloc管理。但是不意味着你可以越界访问&#xff0c;因为malloc可能会把使…

numpy.meshgrid()用法

用于生成网格点坐标矩阵 语法&#xff1a;X,Y numpy.meshgrid(x, y) 输入的x&#xff0c;y&#xff0c;就是网格点的横纵坐标列向量&#xff08;非矩阵&#xff09; 输出的X&#xff0c;Y&#xff0c;就是坐标矩阵。 import numpy as np import matplotlib.pyplot as pltx …

批量对热门文章发送评论,实现博客高效引流

许多人通过评论别人博客&#xff0c;提升自己博客的流量 随便点开一篇文章都可以找到相似话语 想拥有&#xff0c;百万流量指日可待了 先确定评论什么样的文章 选择平台首页文章&#xff0c;文章多&#xff0c;但杂乱选择排行榜文章&#xff0c;热度高&#xff0c;但数量有限…