ssm整合之编写MyBatis框架
1.修改帐户dao接口的代码如下:
package com.txw.dao;
import com.txw.domain.Account;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
*帐户dao接口
* @author Adair
*/
@SuppressWarnings("all") // 注解警告信息
public interface AccountDao {
/**
*查询所有账户
* @return
*/
@Select("select * from account")
public List<Account> findAll();
/**
*保存帐户信息
* @param account
*/
@Insert("insert into account (name,money) values (#{name},#{money})")
public void saveAccount(Account account);
}
声明一下,注解的方式。
2.在resources目录新建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>
<!--配置环境-->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///ssm"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--引入的配置文件-->
<mappers>
<!-- 该包下所有的dao接口都可以使用 -->
<package name="com.txw.dao"/>
</mappers>
</configuration>
3.编写测试类的代码如下:
package com.txw.test;
import com.txw.dao.AccountDao;
import com.txw.domain.Account;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
/**
* 测试类
* @author Adair
*/
@SuppressWarnings("all") // 注解警告信息
public class TestMyBatis {
/**
* 测试查询
* @throws Exception
*/
@Test
public void run1() throws Exception {
// 加载配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 使用factory创建SqlSession对象
SqlSession session = factory.openSession();
// 获取到代理对象
AccountDao dao = session.getMapper(AccountDao.class);
// 查询所有数据
List<Account> list = dao.findAll();
for(Account account : list){
System.out.println(account);
}
// 关闭资源
session.close();
in.close();
}
}
运行结果如图所示:
4.ssm整合之编写MyBatis框架测试保存的方法
package com.txw.test;
import com.txw.dao.AccountDao;
import com.txw.domain.Account;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.InputStream;
import java.util.List;
/**
* 测试类
* @author Adair
*/
@SuppressWarnings("all") // 注解警告信息
public class TestMyBatis {
/**
* 测试保存
* @throws Exception
*/
@Test
public void run2() throws Exception {
Account account = new Account();
account.setName("Tom");
account.setMoney(400d);
// 加载配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
// 创建SqlSession对象
SqlSession session = factory.openSession();
// 获取到代理对象
AccountDao dao = session.getMapper(AccountDao.class);
// 保存
dao.saveAccount(account);
// 提交事务
session.commit();
// 关闭资源
session.close();
in.close();
}
}
运行结果如图所示:
在数据库使用SELECT * FROM account;运行结果如图所示: