首先我说明一下mybatis框架中用到的几个最重要的文件,配置文件:创建工程的pom.xml文件,mybatis的主配置文件(xml文件),具体的查询映射文件(xml文件);再就是定义的接口文件和定义的查询或者返回对象的类文件;最后是一个测试类文件。下面我分别进行说明。
1.pom.xml文件:最前边都是一样的,可以直接拷贝上,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
另外,还包括你的工程坐标, 和众多依赖,包括mybatis,mysql,log4j,junit等等,用到什么后边可以往上加。
2.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">
<!--mybatis的主配置文件-->
<configuration>
<!--设置mybatis的全局设置-->
<settings>
<!--打印日志-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--配置环境-->
<environments default="mysql">
<!--配置mysql环境-->
<environment id="mysql">
<!--配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,也叫连接池-->
<dataSource type="POOLED">
<!--配置连接数据库的四个基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/MyDatas"/>
<property name="username" value="root"/>
<property name="password" value="777"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/lin/dao/UserDao.xml"/>
</mappers>
</configuration>
3.最后就是对于整个框架而言操作数据库的配置文件,所有的sql语句都写在这里,其中需要注意的就是namespace命名空间的写法和具体sql语句的id,这个id就是之前你写的接口中的具体方法名称(完全一样);再有需要注意这个返回类型resultType,要根据你接口中的返回值类型来定,可以是对象类型,int类型等。
<?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="com.lin.dao.UserDao">
<!--配置查询所有-->
<select id="selectUser" resultType="com.lin.domain.User">
select * from user where id =#{myid} or username = #{myname}
</select>
<!-- 插入数据-->
<insert id="insertUser">
insert into user values (#{id},#{username},#{birthday},#{sex},#{address})
</insert>
<select id="selectMultiUser" resultType="com.lin.domain.User">
select * from user where id =#{id} or username = #{username}
</select>
</mapper>
4.第四个是接口的定义,这个没什么好说的,如果你想要的返回多个对象可以定义一个List类型,根据情况而定,给出参考
import com.lin.domain.User;
import java.util.List;
public interface UserDao {
List<User> selectUser();
public int insertUser(User user);
}
5.最后这个测试类,这其中我要说就是mybatis的一个比较好用的一个点:动态代理对象的创建和使用。以往我们可能需要写实现类去实现接口,有了这个动态代理对象我们只要调用工具类生成代理对象进行动态代理,需要修改的有其中有这么一条语句:
classUserDao userDao = session.getMapper(UserDao.class);
其中UserDao为接口名称,这里只要在getMapper()方法中填入接口名的class文件就可以了,给出参考
import com.lin.dao.UserDao;
import com.lin.domain.User;
import com.lin.util.MyBatisUtils;
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.InputStream;
import java.util.List;
public class MybatisTest {
public static void main(String[] args) throws Exception {
//调用方法创建sqlSession对象
SqlSession session = MyBatisUtils.getSqlSession();
//使用SqlSession创建Dao接口的代理对象(动态代理)
UserDao userDao = session.getMapper(UserDao.class);
//使用代理对象执行方法
List<User> users= userDao.selectUser(250,"马云");
for (User user : users) {
System.out.println(user);
}
//释放资源
session.close();
}
}
总结:步骤:改pom.xml配置文件,改mybatis主配置文件,写接口,写sql语句的配置文件,创建动态代理对象实现功能。
来源:oschina
链接:https://my.oschina.net/u/4305580/blog/4482881