mybatis入门学习,mybatis环境搭建
2016-03-10 16:02
716 查看
这是我的第一篇博客,哈哈,谢谢大家捧场,由于实习需要mybatis框架,所以自己也从零开始写了一个demo,(当然也参考了很多前辈的博客)希望能够帮到想要入门的童鞋。
1. 开发环境
1.1.创建工程
创建一个工程,Java工程或者web工程都是可以的
1.2 当然是导入必需的jar包了,这里需要MySQL的驱动包和mybatis的包
jar包放在WEB-INF里的lib中
1.3 创建数据库和表,我用的是MySQL数据库
建完之后的效果是:
2. 使用mybatis查表
2.1添加Mybatis的配置文件conf.xml
在src目录下创建一个conf.xml文件,如下图所示:
配置文件中的内容如下:
2.2 定义表对应的实体类
Users类的代码:
2.3定义操作users表的sql映射文件userMapper.xml
创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件:
userMapper.xml代码如下:
2.4 在conf.xml文件中注册userMapper.xml文件(这里的conf.xml还是上面的conf.xml文件,只不过在最下面注册了userMapper.xml文件)
2.5 编写测试代码:执行定义的select语句 。创建一个Test1类,编写如下的测试代码:
好了,运行测试类,下面是运行结果,可以看到已经从数据库中查出来数据了!
到此,一个入门的demo就写完了,当然了这只是针对从来没有接触过mybatis的童鞋来做个入门的引导,先让程序在自己的电脑上跑通,配置文件确实是比较麻烦,肯定有更简洁的方法,但是先按部就班的把程序跑通,然后再考虑更加优化的方法。
1. 开发环境
1.1.创建工程
创建一个工程,Java工程或者web工程都是可以的
1.2 当然是导入必需的jar包了,这里需要MySQL的驱动包和mybatis的包
jar包放在WEB-INF里的lib中
1.3 创建数据库和表,我用的是MySQL数据库
create DATABASE mybatis CHARACTER SET utf8; use mybatis ; create table users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES('程序员大白', 20); INSERT INTO users(NAME, age) VALUES('程序员小白', 18);
建完之后的效果是:
2. 使用mybatis查表
2.1添加Mybatis的配置文件conf.xml
在src目录下创建一个conf.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> <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/mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> </configuration>
2.2 定义表对应的实体类
Users类的代码:
public class Users { //实体类的属性和表的字段名称一一对应 private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Users{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; }
2.3定义操作users表的sql映射文件userMapper.xml
创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件:
userMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 例如namespace="edu.neuq.rxm.mapping.userMapper"就是edu.neuq.rxm.mapping(包名)+userMapper(userMapper.xml文件去除后缀) --> <mapper namespace="edu.neuq.rxm.mapping.userMapper"> <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="edu.neuq.rxm.domain.Users"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 --> <!-- 根据id查询得到一个user对象 --> <select id="getUser" parameterType="int" resultType="edu.neuq.rxm.domain.Users"> select * from users where id=#{id} </select> </mapper>
2.4 在conf.xml文件中注册userMapper.xml文件(这里的conf.xml还是上面的conf.xml文件,只不过在最下面注册了userMapper.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> <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/mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <!-- 注册userMapper.xml文件, userMapper.xml位于edu/neuq/rxm/mapping/userMapper.xml这个包下,所以resource写成edu/neuq/rxm/mapping/userMapper.xml--> <mapper resource="edu/neuq/rxm/mapping/userMapper.xml"/> </mappers> </configuration>
2.5 编写测试代码:执行定义的select语句 。创建一个Test1类,编写如下的测试代码:
package edu.neuq.rxm.mybatisTest; import edu.neuq.rxm.domain.Users; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.InputStream; public class Test1 { public static void main(String[] args){ //mybatis的配置文件 String resource ="conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream inputStream=Test1.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession=sessionFactory.openSession(); /** * 映射sql的标识字符串, * edu.neuq.rxm.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, * getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL */ String statement="edu.neuq.rxm.mapping.userMapper.getUser"; //执行查询返回一个唯一user对象的sql Users users=sqlSession.selectOne(statement,1); System.out.println(users); } }
好了,运行测试类,下面是运行结果,可以看到已经从数据库中查出来数据了!
到此,一个入门的demo就写完了,当然了这只是针对从来没有接触过mybatis的童鞋来做个入门的引导,先让程序在自己的电脑上跑通,配置文件确实是比较麻烦,肯定有更简洁的方法,但是先按部就班的把程序跑通,然后再考虑更加优化的方法。
相关文章推荐
- 怎么在前台取的ViewBag中的值
- bootstrap学习笔记之四(javascript插件)
- python——读写excel
- Unique唯一值的前提是字段中不重复且空白值设为NULL
- shell脚本中 unary operator expected解决办法
- UGUI如果只做特定次数的滑动界面
- 逻辑卷的管理
- java二维码生成及解析代码
- 内存管理(retain,assign,copy,strong,weak)
- Struts2自定义拦截器
- android AlarmManager使用小例子
- C语言笔记之关键字(一)
- 在Hosts下更改内容
- linux下的命令和常见问题笔记
- [数据结构-hash]CF 7D Palindrome Degree
- Linux内核分析作业第三周
- cookie 编码问题
- 动画总结
- STM32_DMA_笔记
- GUI for git|SourceTree|入门基础