1.新建一个maven工程,在Java中新建类com.itheima.domain.User
该类的内容开头是:
public class User implements Serializable {
private Integer id;
private String username;
private String address;
private String sex;
private Date birthday;
接下来生成他们的get和set和toString方法,简单起见类的属性名和数据库中列名要相同
2.在Java中新建接口com.itheima.dao.IUseDao
该接口先定义一个方法findAll,返回的是一个List集合,在方法上方添加注解
@Select("select * from user")
它与XML配置不同的地方就在于此,只需要配置就可以代替XML中的配置信息,本来XML配置是这样的:
<select id="findAll" resultType="com.itheima.domain.User">
select * from user ;
</select>
配置完成了上面所呈现的四个信息,即全限定类名,方法名,封装对象,SQL语句
3.接下来导入log4j.properties和jdbcConfig.properties文件,指明驱动、url、username、password四个连接数据库必备属性
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mabatis
jdbc.username=root
jdbc.password=568399
4.同目录下(resource)建一个xml文件命名为SqlMapConfig.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="jdbcConfig.properties"></properties>
<!--配置别名-->
<typeAliases>
<package name="com.itheima.domain"></package>
</typeAliases>
<!--配置环境-->
<environments default="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>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<!--指定带有注解的dao接口所在位置-->
<mappers>
<package name="com.itheima.dao"></package>
</mappers>
</configuration>
配置环境那里,因为在jdbcConfig.properties文件中配置的那四个属性中都是jdbc.driver=…之类的,所以如果把${jdbc.driver}改成不要jdbc.会报错称找不到${driver},在properties文件中删掉jdbc可解决此问题,只要名称一致就可以,不过不能改driver改成river之类的,要不然驱动都加载不了,连接不上数据库
5.在test中新建测试类com.itheima.test.MybatisAnnoTest,改类:
//1.获取字节输入流
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.根据字节输入流构建SqlSessionFactory
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(in);
//3.根据SqlSessionFactory生产一个SqlSession
SqlSession session = factory.openSession();
//4.使用SqlSession获取dao代理对象
IUserDao userDao = session.getMapper(IUserDao.class);
//5.执行dao方法
List<User> users = userDao.findAll();
for(User user : users){
System.out.println(user);
}
//6.释放资源
session.close();
in.close();
这是标准步骤了
后面的增删改也不难了,可以用测试类,加@Before和@After简化代码,要记得提交session.commit()就可以,我只在main方法中把findAll方法改了
User user = new User();
user.setUsername("紫霞仙子");
user.setAddress("王者荣耀");
user.setSex("女");
userDao.saveUser(user);
session.commit();
这就插入了一条数据,注解:
@Insert("insert into user (username,address,sex)
values(#{username},#{address},#{sex})")
至此,用Mybatis框架搭建增删查改就掌握了。