mybatis入门之XML配置

  • maven目录结构
  • 1、创建一个maven项目
  • 2、 配置pom文件
  • 3、创建数据库及数据库表
  • 4、java类和接口
    • 4.1 User.java实体类
    • 4.2、UserMapper.java 接口
    • 4.3、UserMapper.xml 文件
  • 5、mybatis相关配置
    • 5.1、db.properties文件
    • 5.2、mybatis_config.xml文件
    • 5.3、log4j.properties
  • 6、 测试(5步)
    • 6.1、MybatisUtils.java
    • 6.2、UserMapperTest.java

maven目录结构

1、创建一个maven项目

如果你的maven项目加载不了依赖
方法炒鸡简单 —>:maven经常报错,改改你的setting.xml

2、 配置pom文件

  • mysql依赖:数据库
  • mybatis依赖
  • junit依赖:用于单元测试
  • log4j:日志打印
  • build 在mybatis中必须写,因为在编译时加载不了src/main/java下的xml等文件

<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency></dependencies><!--在mybatis当中,必须写--><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.properties</include><include>**/*.yml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include><include>**/*.yml</include></includes></resource></resources></build>

3、创建数据库及数据库表

CREATE DATABASE mybatis;
use mybatis;
CREATE TABLE IF NOT EXISTS user (id int(20) not null primary key,name VARCHAR(50) default NULL,pwd VARCHAR(50) default null
)engine=innodb;insert into user(id,name,pwd) values
(1,'贾立桐','123123'),
(2,'李四','123456'),
(3,'王麻子','111111');

4、java类和接口

4.1 User.java实体类

  • 此处省略了有参构造及无参构造,getter and setter,toString,请自己添加
  • 快捷键 Alt+insert
package com.tong.pojo;public class User {private int id;private String name;private String pwd;//有参构造及无参构造//getter and setter//toString
}

4.2、UserMapper.java 接口

package com.tong.dao;import com.tong.pojo.User;import java.util.List;public interface UserMapper {List<User> getUserList();User getUserById(int id);int addUser(User user);int updateUser(User user);int deleteUser(int id);
}

4.3、UserMapper.xml 文件

  • mapper标签里的namespace 为对应的接口类的全限定名
  • resultType :返回值类型,基本类型填名称,引用类型填全限定名称 (这里使用User而未使用com.tong.pojo.User的原因为在mybatis文件中配置了别名,请继续往后看)
  • parameterType:参数类型
<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tong.dao.UserMapper"><select id="getUserList" resultType="User">select * from user</select><select id="getUserById" parameterType="int" resultType="User">select * from user where id = #{id}</select><insert id="addUser" parameterType="User" >insert into user (id,name,pwd) values (#{id},#{name},#{pwd})</insert><update id="updateUser" parameterType="User" >update user set name=#{name},pwd=#{pwd} where id = #{id}</update><delete id="deleteUser" parameterType="int" >delete from user where id = #{id}</delete>
</mapper>

5、mybatis相关配置

5.1、db.properties文件

  • url后的mybatis为数据库名
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=这里填你自己的密码

5.2、mybatis_config.xml文件

  • settings标签中配置了日志类型,此处选择为log4j
  • typeAliases 标签中配置了别名,可不使用全限定名,简化开发
  • environments 标签中配置mybatis环境,可创建多个环境environment ,在environments标签中的default来选中环境
  • dataSource 配置数据源
  • mappers 标签讲Mapper XML文件注册到Mybatis中
<?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 resource="db.properties"/><settings><setting name="logImpl" value="LOG4J"/></settings><typeAliases><package name="com.tong.pojo"/></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><package name="com.tong.dao"/></mappers>
</configuration>

5.3、log4j.properties

log4j.rootLogger=DEBUG, Console#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

6、 测试(5步)

6.1、MybatisUtils.java

  1. 读取配置文件
  2. 创建SqlSessionFactory工厂
  3. 使用工厂生产sqlSession对象
package com.tong.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 MybatisUtils {//创建一个工厂private static SqlSessionFactory sqlSessionFactory = null;static {try {InputStream in = Resources.getResourceAsStream("mybatis_config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);} catch (IOException e) {e.printStackTrace();}}//获取sessionpublic static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

6.2、UserMapperTest.java

  1. 使用sqlSession创建DAO接口的代理对像
  2. 使用代理对象执行方法
package com.tong.dao;import com.tong.pojo.User;
import com.tong.util.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;import java.util.List;public class UserMapperTest {private SqlSession session;private UserMapper userMapper;static Logger logger = Logger.getLogger(UserMapperTest.class);@Beforepublic void init(){session = MybatisUtils.getSqlSession();}@Testpublic void getAll(){try {userMapper = session.getMapper(UserMapper.class);List<User> list = userMapper.getUserList();for (User user:list) {System.out.println(user);}}finally {session.close();}}@Testpublic void getUserByIdTest(){userMapper = session.getMapper(UserMapper.class);User user = userMapper.getUserById(1);System.out.println(user);session.close();}@Testpublic void adduser(){userMapper = session.getMapper(UserMapper.class);int res = userMapper.addUser(new User(4,"艾瑞克","987654"));if (res>0){System.out.println("插入成功");}session.commit();session.close();}@Testpublic void updateUser(){userMapper = session.getMapper(UserMapper.class);int res = userMapper.updateUser(new User(2,"李四儿","111222"));if (res>0){System.out.println("更新成功");}session.commit();session.close();}@Testpublic void deleteUser(){userMapper = session.getMapper(UserMapper.class);int res = userMapper.deleteUser(2);session.commit();session.close();}@Testpublic void Log4jTest(){logger.info("111");logger.debug("222");logger.error("333");}
}

mybatis入门之XML配置 idea版(含目录结构与sql语句)相关推荐

  1. mybatis逆向工程mbg.xml配置模板( MyBatis Generator)

    mybatis逆向工程mbg.xml配置模板( MyBatis G在数据库中建立好表就可以进行逆向工程配置了,配置逆向工程,只需要两步: (1)在项目目录下配置mbg.xml文件,(2)在测试类运行一 ...

  2. Mybatis入门 使用XML

    1.项目结构 2.详细代码 数据库: 1.创建实体类bean package com.itheima.domain;import java.io.Serializable; import java.u ...

  3. MyBatis 关系映射XML配置

    关系映射 在我看来这些实体类就没啥太大关联关系,不就是一个sql语句解决的问题,直接多表查询就完事,程序将它设置关联就好 xml里面配置也是配置了sql语句,下面给出几个关系的小毛驴(xml) 一对多 ...

  4. MyBatis 之 SqlMapConfig.xml 配置

    2019独角兽企业重金招聘Python工程师标准>>> 下面介绍 MyBatis 的核心配置文件 SqlMapConfig.xml 的配置实用: SqlMapConfig.xml 中 ...

  5. mybatis之mybatis-config.xml 配置详解

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...

  6. mysql数据库应用从入门到精通 王飞飞_《MYSQL数据库应用从入门到精通(第2版)(含盘)》王飞飞 崔洋 贺亚茹著【摘要 书评 在线阅读】-苏宁易购图书...

    第1篇  MySQL数据库基础篇 第1章  数据库概述 1.1  关于数据库的基本概念 2 1.1.1  数据管理技术的发展阶段 2 1.1.2  数据库系统阶段涉及的概念 3 1.1.3  数据库技 ...

  7. [紫书CH0] 《算法竞赛入门经典》(第2版) 题解目录

    紫书题解 本着仅仅门外看看风景的初心,却 不慎 被其内壮丽美景所深深吸引.将会持续的画上一段时间对紫书进行系统性的学习,相关的 UVa 经典习题会道道完成并贴出题解供大家学习交流.也算是记录我曾经来过 ...

  8. (2/3) windows下vim配置dbext插件连接oracle直接执行sql语句--补充配置OBI ODBC interface 安装odbc数据源,让字段显示没有那么宽

    1 显示结果如下 2 找github对应perl版本和vim版本号 echo has('perl') return 0 主要原因是  vim  perl  如果操作系统64   最好vim和perl的 ...

  9. SQL入门之第十六讲——总结下之前的SQL语句书写顺序

    SQL语句的书写顺序与执行顺序不是一致的 1.SQL语句的书写顺序 语句的书写顺序是比较重要的,如果顺序不对去执行也是会报错的. 之前的SELECT.WHERE.ORDER BY.LIMIT.JOIN ...

最新文章

  1. LeetCode OJ:Valid Anagram(有效字谜问题)
  2. 深入理解Semaphore
  3. 写程序的一些感想和教训
  4. 一些算法题,欢迎来改进
  5. java常用网络协议_初识java网络编程
  6. 2021级C语言大作业 - 消灭星星
  7. python上传文件到windows_python使用win32gui上传文件
  8. 从SQL到NoSQL再到NewSQL
  9. C语言编程七层塔381,【计算机类职业资格】二级C语言-381 (1)及答案解析.doc
  10. mycat-mysql读写分离
  11. k3导入账套_金蝶k3凭证导入导出的操作方法金蝶k3操作指南
  12. 海康摄像头使用网线连接电脑后无法访问摄像头ip
  13. 如何使用迭代器Iterator与增强for循环遍历Map集合?
  14. 台式电脑连不上wifi怎么办
  15. Windows驱动开发WDM
  16. 物联网应用开发实践案例-智慧农业
  17. 华为办公协作与远程视频会议软件Link Now停止运营 请及时备份数据
  18. python画布删除图形_Matplotlib在savefig之后从画布中清除旧图形
  19. 【私藏好用】将bmap地图,Quik等五款软件打包送你端午节礼物
  20. android camera 全屏,Android Camera做全屏预览之最简单方法.doc

热门文章

  1. HttpPrinter说明文档(web打印中间件,web打印插件)
  2. 水污染扩散-一维二维模型在线示例
  3. 读史的三个境界(ZZ)
  4. 手机变身蓝牙键盘、鼠标Serverless Bluetooth Keyboard Mouse for PC/Phone
  5. Label smooth
  6. 选择H5互动游戏这种方式营销有什么优势
  7. SigMesh学习笔记
  8. BUUCTF 爱因斯坦
  9. Python自动抢票神器,GitHub热榜第一!
  10. 判断手机号码是否有效