Mybatis执行SQL语句的方式
2014-10-31 21:46
344 查看
最近在玩Mybatis,感觉官方文档对于通过执行mapper接口和XML配置文件执行SQL的描述不是特别清楚,现在总结如下:
首先实现mapper接口:
在XML中配置SQL:
于是我们就有了三句SQL,可以通过下面的方式执行这三句SQL:
可能还有其他方式,但目前只发现这三种,欢迎指点讨论~~
首先实现mapper接口:
import org.apache.ibatis.annotations.Select; public interface UserMapper { @Select("SELECT * FROM table01 WHERE id = #{id}") User selectUser(int id); }
在XML中配置SQL:
<?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="mybatisModule.UserMapper"> <select id="xmlSelectUser" parameterType="int" resultType="User"> select name,password from table01 where id = #{id} </select> <select id="xmlSelectUsers" resultType="User"> select * from table01 order by id </select> </mapper>
于是我们就有了三句SQL,可以通过下面的方式执行这三句SQL:
public static void main(String[] args) throws SQLException, IOException{ SqlSessionFactory sessionFactory = SessionFactorySingleton.getSessionFactory(); SqlSession session = sessionFactory.openSession(); try{ //method 1: session.getMapper()调用接口 UserMapper mapper = session.getMapper(UserMapper.class); User user1 = mapper.selectUser(6); if(user1 != null){ System.out.println("user name:"+user1.getName()); } else{ System.out.println("selected 0 row"); } //method 2: session.selectOne()调用接口 User user2 = (User)session.selectOne("mybatisModule.UserMapper.selectUser",9); if(user2 != null){ System.out.println("user name:"+user2.getName()); } else{ System.out.println("selected 0 row"); } //method 3: session.selectOne()调用XML配置文件 User user3 = (User)session.selectOne("mybatisModule.UserMapper.xmlSelectUser",6); if(user3 != null){ System.out.println("user name:"+user3.getName()); } else{ System.out.println("selected 0 row"); } //查询得到多组数据 ArrayList<User> users = (ArrayList<User>)session.selectList("mybatisModule.UserMapper.xmlSelectUsers"); for(User u : users){ System.out.println(u.getId()+" : "+u.getName()+" : "+u.getPassword()); } }finally{ session.close(); } }
可能还有其他方式,但目前只发现这三种,欢迎指点讨论~~
相关文章推荐
- 用编程的方式将当前服务器上SQL SERVER中正执行的所有T-SQL语句记录下来
- mybatis3下的通用sql的select语句执行类
- mybatis下使用log4j打印sql语句和执行结果
- [MyBatis]获取数据库连接、批量执行SQL语句
- mybatis直接执行sql语句
- ASP.NET调用类连接Access数据库执行sql语句并以GridView方式读取表中数据
- mybatis下使用log4j打印sql语句和执行结果
- 在mybatis执行SQL语句之前进行拦击处理
- [MyBatis]获取数据库连接、批量执行SQL语句
- 在mybatis执行SQL语句之前进行拦击处理
- 用编程的方式将当前服务器上SQL SERVER中正执行的所有T-SQL语句记录下来
- MyBatis-Spring 执行SQL语句的流程
- ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法
- 非常简单,让log4j输出mybatis的sql语句和执行结果
- Java:对于Sql语句执行方式不同而出现的问题!列名: 'false' 无效
- 关于SQL更新语句的执行方式
- javaEEWeb开发之sql语句的执行方式
- 最近用plsql通过 @sql语句路径的方式 因为手贱导致sql文件执行不下去的问题
- MyBatis-Spring 执行SQL语句的流程
- SQL语句的执行计划(oracle表的三种链接方式)