MyBatis学习手记一
前:MyBatis官方学习(中文)文档 http://mybatis.github.io/mybatis-3/zh/index.html
一,首先,要使用MyBatis必须使用官方提供的MyBatis的JAR包
链接:https://github.com/mybatis/mybatis-3/releases
这里使用的数据库是MySQL,所以还需要Mysql的驱动包、
二、其实MyBatis初学很简单。但是也是需要依赖一些配置文件。
MyBatis-Config.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> <!-- 这里需要注意,这个typeAliases不能放在 environments 这个节点的下面,否则会报错 --> <typeAliases> <typeAlias alias="User" type="com.xcode.beens.User"/> </typeAliases> <!-- 这里配置的是数据库的类型,以及连接,用户名,密码之类的 --> <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://127.0.0.1:3306/mybatis" /> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <!-- 这里好多人是配置的 xml配置文件。我这里配置的是它的接口,相当于xml文件的映射Java接口 --> <mapper class="com.xcode.beens.mapperInterfaces.UserMapper"/> </mappers> </configuration>
三、牛逼的地方来了。例如我们数据库里面有User这个表
User表
id |
name | sex | address |
1 | 张三 | 男 | 江西 |
2 | 李四 | 男 | 上海 |
我们就在我们项目中新建一个Been User.java
User.java
public class User { //类里的属性名与表结构字段名相同 private int id; private String name; private String sex; private String address; 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
在MyBatis-Config.xml 中配置一下
<!-- 这个其实不用配置也可以,嫌麻烦也可以不用去配置 --> <typeAliases> <typeAlias alias="User" type="com.xcode.beens.User"/> </typeAliases>
然后为了操作数据库的数据,我们新建一个接口,用来封装对数据库的操作
UserMapper.java
package com.xcode.beens.mapperInterfaces; import org.apache.ibatis.annotations.Select; import com.xcode.beens.User; public interface UserMapper { @Select("select * from user where id = #{id}") public User selectUserById(int id); }
从字面意思上可以看得出,这个接口封装了一个操作,selectUserById ,我们可以看见,在这个方法的上面有一段注解,:
@Select("select * from user where id = #{id}")
其实最牛逼的就是这个注解了。这个注解成功的将数据库的sql语句封装成了 Java 的操作。
然后 为了让MyBatis知道我们在这里封装了这么一个操作。
我们必须在它的配置文件MyBatis-Config.xml 里面配置一下。让MyBatis知道有这么个东西存在
<mappers> <mapper class="com.xcode.beens.mapperInterfaces.UserMapper"/> </mappers>
好了 一切都配置好了。还有一个问题就是,怎么让MyBatis读取到MyBatis-Config.xml这个配置文件呢?这个配置文件放哪里呢?
我们这里呢,将这个配置文件放在 src 目录下。
新建一个Test类。来看看MyBatis的神奇之处。、
Test.java
package com.xcode.Test; import java.io.Reader; 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 com.xcode.beens.User; import com.xcode.beens.mapperInterfaces.UserMapper; public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; public static void main(String[] args) throws Exception { //读取配置文件 reader = Resources.getResourceAsReader("MyBatis-Config.xml"); //绑定配置文件。 sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); 创建操作数据库的session SqlSession session = sqlSessionFactory.openSession(); //通过接口的 class,它会返回这个接口的实例。 UserMapper userMapper = session.getMapper(UserMapper.class); //通过调用接口里的定义的方法,就可以达到操作数据库的操作、 User user = userMapper.selectUserById(1); System.out.println(user.getName()); //操作完了之后必须close掉、 session.close(); } }
不知道你们觉得怎么样。反正我是觉得巨方便无比。
当然了,其中还有很多东西没有说。你们可以去看看它的官方文档。反正有中文的,也不怕看不懂、