MyBatis开发环境的搭建
mybatis,前身ibatis,是一个orm框架 orm=object(对象) relation(关系,表) mapping(映射)
1.新建Java项目,引入jar包,mybatis的jar包和mysql的jar包
src
mybatis的jar包下载
https://github.com/mybatis/mybatis-3/releases
2.建立数据库users,建立表user(id,userName,userPwd)这里只是为了更好的说明mybatis的环境搭建(不一定是这个数据库及表和属性)
3.引入mybatis的主配置文件mybatis-config.xml(名字在代码中要用到)
mybatis-config.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="development">
<environment id="users">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.user}" />
<property name="password" value="${db.password}" />
</dataSource>
</environment>
</environments>
<!-- mapping 文件路径配置 -->
<mappers>
<!-- <mapper class="javastudy.UserMapper" /> -->
<!-- <mapper resource="userMapper.xml"/> -->
</mappers>
</configuration>
4.将数据库连接信息写入单独的properties文件
(1)主配置文件中将连接参数修改为变量
<property name="driver" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.user}" />
<property name="password" value="${db.password}" />
(2)引入db.properties文件
<properties resource="db.properties"></properties>
(3)在src目录下添加db.properties文件
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/users
db.username=root
db.password=621366(这里面的数据库和密码等等都是要和你们自己的数据库信息所对应,我这里是mysql数据库)
5.编写实体类User
User(id,userName,userPwd)生成setter和getter的方法
6.在实体类所在包下,编写userMapper.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="javastudy.userMapper">
<select id="selectUser" parameterType="int" resultType="javastudy.User"> (这里的parameterType代表select的是整数类型)
select * from User where id = #{id}
</select>
</mapper>
7.编写测试程序
(1)编写MyBatis的工具类
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtils {
public static SqlSession openSession() throws IOException
{
String resource = "mybatis-config.xml";///这里的名字要和mybatis的主配置文件mybatis-config.xml文件名字一样
InputStream in = Resources.getResourceAsStream(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(in,"users");///这里的users一定要和mybatis-config.xml中的 <environment id="users"> 这个users相同
return sessionFactory.openSession();
}
}
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
### The error may exist in javastudy/userMapper.xml
### The error may involve javastudy.userMapper.selectUser
### The error occurred while executing a query
### Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
8.最后编写一个测试的类(Junit case)
@Test
public void test() throws IOException {
SqlSession session = MyBatisUtils.openSession();
String statement = "javastudy.userMapper.selectUser";///注意这里要和上面的userMapper.xml相同
User user = session.selectOne(statement, 1);///查找id为1的信息
System.out.println(user);///打印之前记得在User这个类中重写toString的方法
}
完成这8部就完成了MyBatis环境的搭建