关于安装MyBatis
环境:
- JDK 13.0.2
- tomcat 9.0.3
- mybatis 3.5.4
- mysql 8
入门
早期为:ibatis:apache
2010年被Google收购改称:Mybatis
主要作用:简化JDBC操作,实现数据的持久化。
ORM:Object Relational Mapping,可以使开发人员像操作对象一样操作数据库
mybatis是ORM的一种实现
下载
之前看过的一个教程是使用Idea的,也就是直接使用依赖库导入,这次看的是导入jar使用。
去官网
选择Getting Started
会有Maven方式,当然使用Idea就可以直接复制代码框内代码到idea中,但这次选择jar的超链接。
就来到了熟悉的github,在最新版本下,有三个选项,这里选择第一个zip包下载。
下好之后是个zip,
打开以后目录文件如图,
lib文件夹存放mybatis的一些依赖包,
license就是字面意思 许可证,
mybatis-3.5.4.jar
即要用到的jar,
.pdf即使用说明书,
NOTICE也是字面意思 注意事项。
使用
简单使用一下:
导包
打开eclipse,新建一个JAVA项目,因为mybatis是操控数据库的,所以暂时可以先间隔Javaproject试一下。
这里起名“TestMyBatis”,将mybatis-3.5.4.jar
拖到src里面,顺便add to buildpath,添加环境。
建表
打开cmd或者使用navicat,因为我的navicat建数据库总是会有数据编码混乱的问题,我一般建表都是用cmd。
创建实体类及映射关系
创建实体类 Person
构建这个类
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1 | private String id;private String name;private int age; |
创建配置文件映射表和类的映射 .xml
文件
点这里转换视图
在刚刚的.pdf文件中有大概的配置方法,打开后找到“Exploring Mapped SQL Statements”
下面有
-
-
-
-
1 | <?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="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper> |
直接复制,到刚刚的xml中,更改namespace
后面的内容为自己的xmltop.eshyee.entity.personMapper
改完之后
-
-
-
-
1 | <?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="top.eshyee.entity.personMapper"> <select id="queryPersonById" resultType="Person" parameterType="String"> select * from person where id= #{id} </select></mapper> |
在创建一个配置文件,在src下创建一个叫config.xml
的文件。
在pdf中查找“Building SqlSessionFactory from XML”
这里需要提前准备好一个用来链接的jar MySQL connector
网址:https://dev.mysql.com/downloads/connector/j/
选zip,下好之后,里面乱七八糟的东西就不细致分析了,会点工地英语看看就好。主要使用mysql-connector-java-8.0.19.jar
。拖到eclipse ,add一下环境。
配置xml如下:
-
-
-
-
-
-
-
-
-
1 | <?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?useSSL=false&serverTimezone=UTC" /> <property name="username" value="我的用户名" /> <property name="password" value="我的密码" /> </dataSource> </environment> </environments> <mappers> <mapper resource="top/eshyee/entity/personMapper.xml" /> </mappers></configuration> |
ok写个测试用例
-
-
-
-
-
-
1 | public static void main(String[] args) throws IOException { // TODO Auto-generated method stub //加载config Reader reader =Resources.getResourceAsReader("config.xml"); SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader); SqlSession session= sessionFactory.openSession(); String statement ="top.eshyee.entity.personMapper.queryPersonById"; Person person=session.selectOne(statement,"1234567890"); //这里的1234567890是我接下来要插入的字符串 System.out.println(person.toString()); session.close(); } |
同时在person下写一个toString()方法,这个可以自己来定,只要能看到person里的值就🉑。
测试
测试一下~~在数据库中插入一行数据
run一下test
🆗
常见问题
- 写完之后run的时候除了问题,报了一坨错其中有个timezone…想起来url写的
jdbc:mysql://localhost:3306/test
,然后后面加了?useSSL=false&serverTimezone=UTC
,结果还不对,就百度了一下&
在xml中是一种很神奇的存在得写成&
. - Resource导包的时候选择
org.apache.ibatis.io.*;
总结
从不总结👌
喜欢此内容的人还喜欢
恭喜中国作协,你们的会员汪芳和港独一起被BBC授奖了!恭喜中国作协,你们的会员汪芳和港独一起被BBC授奖了!…明德时评不喜欢不看的原因确定内容质量低 不看此公众号BC爆增1933例,17人丧生,27校沦陷,麦当劳大统华中招,持续恶化学校或将关闭BC爆增1933例,17人丧生,27校沦陷,麦当劳大统华中招,持续恶化学校或将关闭…每天温哥华不喜欢不看的原因确定内容质量低 不看此公众号
微信扫一扫
关注该公众号