首先使用idea创建一个maven项目
添加以下依赖 ,链接数据库,使用mybaties,使用单元测试的依赖
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency>
每个 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
SqlSessionFactoryBuilder 则可以从 XML 配置文件来构建出 SqlSessionFactory 实例。
SqlSession对象则是由SqlSessionFactory 活得的,所有的有关sql的操作语句都是由SqlSession完成。
获取SqlSessionFactory 这段代码是固定的,配置文件编写在下面。
String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
mybatis需要配置一个核心配置的XML文件(mybatis-config.xml),将需要连接的数据库驱动,数据库链接,账号以及密码写入配置
代码后面的 <mappers> </mappers> 为注册一个mapper的xml文件,该xml使用来关联一个java类或者接口,及其对方法,和在编写sql语句
<?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/school?useUnicode=true&characterEncoding=utf8&useSSL=true"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/hys/mybatis/dao/userDao.xml"/> </mappers> </configuration>
com/hys/mybatis/dao/userDao.xml的代码如下,namespace为对应的类,select中id对应的是namespace类中的方法,result为查询的结果集。userDao的接口代码如下
com.hys.mybatis.pojo.user 该类为具体类,属性私有,拥有无参构造,以及get/set方法
<mapper namespace="com.hys.mybatis.dao.userDao"> <select id="getUserList" resultType="com.hys.mybatis.pojo.user" > select * from school.user </select> </mapper>
public interface userDao { public List<user> getUserList(); }
最后测试,请先在上面 所写的 url=jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8&useSSL=true
确保这个url能连上数据库,数据库有对应的表,测试代码如下:
@Test public void getUser() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); userDao mapper = sqlSession.getMapper(userDao.class); List<user> userList = mapper.getUserList(); for (user user : userList) { System.out.println(user); } }