使用mybatis连接mysql的话,需要如下步骤:
1、生成实体类。
public class User implements Serializable {
private Integer id;
private String username;
private String address;
private String sex;
private Date birthday;
//没有使用lombok,下面有get和set方法
}
2、生成主配置文件,放在resources下面
<?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="mysql">
<!-- 配置mysql的环境-->
<environment id = "mysql">
<!-- 配置事务-->
<transactionManager type = "JDBC"></transactionManager>
<!-- 配置连接池,第二行的value是数据库的名称-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="12345"/>
</dataSource>
</environment>
</environments>
<!--配置映射文件的位置-->
<mappers>
<mapper resource="com/xxx/dao/IUserDao.xml"></mapper>
</mappers>
</configuration>
主配置文件也可以这样写,将连接数据库的代码放到外面
<?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="jdbcConfig.properties">
</properties>
<!-- 配置环境-->
<environments default="mysql">
<!-- 配置mysql的环境-->
<environment id = "mysql">
<!-- 配置事务-->
<transactionManager type = "JDBC"></transactionManager>
<!-- 配置连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--配置映射文件的位置-->
<mappers>
<mapper resource="com/itheima/dao/IUserDao.xml"></mapper>
</mappers>
</configuration>
jdbcConfig.properties里的内容:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=12345
3、创建接口(里面书写一个模糊查询的接口):
List<User> findByName(String username);
4、书写mapper层(Dao层)文件(注:3和4两个文件目录需一样)
IUserDao.xml文件如下:
<?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.xxx.dao.IUserDao">
<!-- 根据名称进行模糊查询-->
<select id="findByName" parameterType="string" resultType = "com.xxx.domain.User">
select * from user where username like #{name}
<!-- 不推荐这种方式select * from user where username like'%{value}%' -->
</select>
5、主程序
public class MybatisTest {
private InputStream in;
private SqlSessionFactory factory;
private SqlSession sqlSession;
private IUserDao userDao;
//此注解用于在测试方法之前执行
@Before
public void init() throws Exception{
//读取配置文件,生成字节输入流
in = Resources.getResourceAsStream("SqlMapConfig.xml");
//获取sqlsessionfactory
factory = new SqlSessionFactoryBuilder().build(in);
//获取sqlsession 对象
sqlSession = factory.openSession();
//获取dao的代理对象
userDao = sqlSession.getMapper(IUserDao.class);
}
//此注解用于在测试方法之后执行
@After
public void destory() throws Exception{
//释放资源
sqlSession.close();
in.close();
}
//模糊查询
@Test
public void selectByName(){
List<User> users = userDao.findByName("%王%");
for (User user:users){
System.out.println(user);
}
}
}
主配置文件里面连接数据库的四行代码+映射dao接口的位置
主程序调用dao接口,dao接口调用resources中的xml文件。