本 例使用idea来进行mybatis的入门操作
1、创建一个java项目。
使用alt+insert快捷键 创建一个module,使用maven操作,选择next,然后填入Groupld 、Artifactld,选择版本
注意:Groupld 填入的是main文件目录下 java代码的目录结构,Artifactld是整个模块的命名空间,version发布的版本
2、配置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> <!--前面写好Groupld、Artifactld、version之后自动生成的--> <groupId>cn.bdqn</groupId> <artifactId>mybatisDemo</artifactId> <version>1.0-SNAPSHOT</version> <!--导入依赖的jar包--> <dependencies> <!--导入mybatis包--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.2</version> </dependency> <!--导入mysql包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <!--导入junit包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> <!--导入log日志包--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> </dependencies> <!--导入导入在java包下的配置文件--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> </project>
3、编写resources目录下的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="dfc"> <environment id="dfc"> <!--事务管理,jdbc需要程序提交事务处理在增删改时,查询的时候不用,因为未对数据库内容作出实质性改动managed由容器进行事务的管理--> <transactionManager type="jdbc"></transactionManager> <!--dataSource 是数据源的意思,pooled连接池的方式、unpooled是mybatis每次都会重新打开一个连接,close的时候会真正关闭、jndi是交给Spring去管理 --> <dataSource type="pooled"> <!--数据库信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/tcmp"/> <property name="username" value="root"/> <property name="password" value="wss"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/bdqn/dao/UserMapper.xml"></mapper> </mappers> </configuration>
4、在dao层写映射文件 采用的是反射机制
<?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"> <!--namespace是命名空间,也就是整个目录结构 resultType是结果类型,SQL语句查询到结果类型--> <mapper namespace="cn.bdqn.dao.UserMapper"> <select id="QueryCount" resultType="int"> SELECT COUNT(1) FROM t_user </select> </mapper>
5、在测试类里边写测试方法
public class UserMapperTest { @Test public void queryCountTest(){ SqlSession sqlSession =null; SqlSessionFactory factory=null; SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); Integer n=0; try { //读取配置文件的内容,生成的字节流 InputStream is = Resources.getResourceAsStream("mybatis_config.xml"); factory=builder.build(is); sqlSession=factory.openSession(); n=sqlSession.selectOne("cn.bdqn.dao.UserMapper.QueryCount"); System.out.println(n); } catch (IOException e) { e.printStackTrace(); } } }