mybatis采用弱连接,在一定程度上集中管理了sql的语句编写,又实现了自动映射bean。
此处以最基础的mybatis连接为例:
引入jar包:
mybatis-3.4.5.jar
ojdbc-6.jar
在src下创建文件:mybatis.cfg.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> <!-- 引入外部配置文件 --> <properties resource="ojdbc.properties"></properties> <!--bean 别名通过扫描 bean下的内容获取 --> <typeAliases> <package name="bean" /> </typeAliases> <!-- 配置mybatis运行环境 --> <environments default="cybatis"> <environment id="cybatis"> <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 --> <transactionManager type="JDBC" /> <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI --> <!-- POOLED 表示支持JDBC数据源连接池 --> <!-- UNPOOLED 表示不支持数据源连接池 --> <!-- JNDI 表示支持外部数据源连接池 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- mappers扫描内容 --> <mappers> <package name="mapper" /> </mappers> </configuration>
在src下创建ojdbc.properties文件
db连接驱动文件写法参照 db连接驱动,以下为例子:
jdbc.driver=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@192.168.201.7:1521:orcl jdbc.username=test jdbc.password=test1234
在mapper的package下,创建对象的接口文件和xml映射文件,要求信息对应上。
userMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="mapper.UserMapper"> <!-- 自定义返回结果集 --> <resultMap id="User" type="User"> <result property="UserId" column="User_id" javaType="java.lang.String"></result> <result property="UserNo" column="User_no" javaType="java.lang.String"></result> </resultMap> <select id="getUserById" parameterType="string" resultMap="User"> select User_id,User_no from User where User_id=#{UserId} </select> <select id="getUserBySearch" parameterType="string" resultMap="User"> select User_id,User_no from User where org_name like #{orgName} </select> </mapper>
userMapper.java
public interface UserMapper { /** * * @param UserId 主键ID * @return User * @throws Exception */ User getUserById(String UserId) throws Exception; /** * * @param orgName * @return * @throws Exception */ List<User> getUserBySearch(String orgName) throws Exception; }
创建对数据库的连接:
/** * 获取连接db的session * @author DennyZhao * */ public class DBTools { public static SqlSessionFactory sessionFactory; static { //使用MyBatis提供的Resources类加载mybatis的配置文件 //构建sqlSession的工厂 Reader reader; try { reader = Resources.getResourceAsReader("mybatis.cfg.xml"); sessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSession() { return sessionFactory.openSession(); } }
测试:
public class UserTest { public static void main(String[] args) throws Exception { SqlSession session = DBTools.getSession(); UserMapper UserMapper = session.getMapper(UserMapper.class); List<User> UserList = UserMapper.getUserBySearch("%张三%"); session.close(); } }