mybatis的那些事
转载请注明出处:http://www.cnblogs.com/yidaijiankuanzhongbuhui/p/7003993.html
用mybatis一年多了,一直是别人搭好框架,配置好各种配置文件和导入jar包,然后自己知道怎么用!回过头来再重新整理学习mybatis,发现很多事如果自己亲手操作会更好!
mybatis 官方文档上对mybatis定义是:mybatis是一流的持久层框架,支持自定义sql、存储过程和高级映射!它消除了几乎所有的JDBC代码、手工设置参数和结果的检索!mybatis可以使用简单的XML或注释进行配置 映射文件、映射接口和Java pojo(普通的旧Java对象)到数据库记录。
mybatis的使用:
- 首先从官方文档中下载jar包和源码包(地址为:https://github.com/mybatis/mybatis-3/releases)。并将jar包放到添加到类路径下;
- 创建mybatis的xml配置文件(名字可以自己任意起)
- 创建实体类的与数据库的映射文件
- 创建数据库连接的SqlSessionFactory(即回话工厂,类似于数据库连接池),并获取回话
- 执行sql 并取出结果
具体操作:
- 创建一个动态web工程,将jar包( 见附件)放到lib目录下并built到类路径下。目录如下
- 创建mybatis的xml配置文件,xml文件中有关于数据库连接的参数配置,用来创建回话工厂SqlSessionFactory。暂时把该文件命名为mybatis_config.xml 代码如下
1234567891011121314151617181920
<?
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.jdbc.Driver"/>
<
property
name="url" value="jdbc:mysql://localhost:3306/test1"/>
<
property
name="username" value="root"/>
<
property
name="password" value="root"/>
</
dataSource
>
</
environment
>
</
environments
>
<
mappers
>
<
mapper
resource="sqlMapper/chengjiMapper.xml"/>
</
mappers
>
</
configuration
>
-
首先需要在数据库test1中添加一个表,创建表的sql如下
CREATE TABLE `chengji` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(11) DEFAULT NULL, `xueke` varchar(255) DEFAULT NULL, `fenshu` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
然后需要创建一个实体类:
public class chengji { private Integer id; private String name; private String xueke; private Integer fenshu; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getXueke() { return xueke; } public void setXueke(String xueke) { this.xueke = xueke; } public Integer getFenshu() { return fenshu; } public void setFenshu(Integer fenshu) { this.fenshu = fenshu; } @Override public String toString() { return "Employee [id=" + id + ", name=" + name + ", xueke=" + xueke + ", fenshu=" + fenshu + "]"; } }
创建基于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" > <mapper namespace="sqlmapper.chengjiMapper" > <resultMap id="BaseResultMap" type="model.chengji" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> <result column="xueke" property="xueke" jdbcType="VARCHAR" /> <result column="fenshu" property="fenshu" jdbcType="INTEGER" /> </resultMap> <select id="selectByPrimaryKey" resultMap="BaseResultMap" > select * from chengji where id = #{id,jdbcType=INTEGER} </select> </mapper>
-
我们下面可以写一个test.java 来测试一下:
public class test { public static void main(String[] args) { SqlSession session = getSqlSessionFactory().openSession(); try { String resource = "conf/mybatis_config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); chengji cj = session.selectOne("sqlmapper.chengjiMapper.selectByPrimaryKey", 4); System.out.println(cj.toString()); } finally { session.close(); } } } }
-
最后的打印结果是:chengji [id=4, name=gaoshan, xueke=yuwen, fenshu=99]
本文是作者原创,转载请标明
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析