3.使用annotation配置
来源:互联网 发布:阿里云 香港节点 速度 编辑:程序博客网 时间:2024/06/10 23:09
dao接口+annotation配置
这种方式不适合sql语句较复杂的场景,语句过长也不便于代码维护和查看,如果要用到高级映射和动态sql也不好编写
创建maven工程,目录结构如下
maven配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cjq</groupId> <artifactId>cjq-mybatis1</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>cjq-mybatis1</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!--MyBatis相关--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!--数据库相关--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> </dependencies></project>
configuration.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="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="admin"/> </dataSource> </environment> </environments> <mappers> <!-- 映射DeptDao接口所在的包--> <package name="com.cjq.dao" /> </mappers></configuration>
Dept类型
package com.cjq.vo;/** * Created by cjq on 2017/9/16. */public class Dept { Integer deptno; String dname; String loc; @Override public String toString() { return "Dept{" + "deptno=" + deptno + ", dname='" + dname + '\'' + ", loc='" + loc + '\'' + '}'; } public Integer getDeptno() { return deptno; } public void setDeptno(Integer deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; }}
SessionFactory类
package com.cjq.dao;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 java.io.IOException;import java.io.InputStream;/** * Created by cjq on 2017/9/16. */public class SessionFactory { static SqlSessionFactory factory=null; static{ //测试查询 String resource="configuration.xml"; //获取资源的流 InputStream r= null; try { r = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } //获得session工厂 factory=new SqlSessionFactoryBuilder().build(r); } public static SqlSession getSession(){ //openSession默认事物是手动提交的 return factory.openSession(); }}
DeptDao类
package com.cjq.dao;import com.cjq.vo.Dept;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import java.util.List;/** * Created by cjq on 2017/9/16. */public interface DeptDao { @Insert("insert into dept values(#{deptno},#{dname},#{loc})") public void save(Dept dept); //value可以是任意名称,因为此方法就一个参数,可以用任意名称代替 @Select("select * from dept where deptno>#{value} order by deptno") public List<Dept> getAll(int deptno);}
测试
package com.cjq.vo;import com.cjq.dao.DeptDao;import com.cjq.dao.SessionFactory;import org.apache.ibatis.session.SqlSession;import java.io.IOException;import java.util.List;/** * Created by cjq on 2017/9/16. */public class DeptTest { public static void main(String[] args) throws IOException { //获取session SqlSession session= SessionFactory.getSession(); //获得Dao DeptDao dao=session.getMapper(DeptDao.class); Dept dept=new Dept(); dept.setDeptno(10); dept.setDname("test"); dept.setLoc("test"); // dao.save(dept); // session.commit(); List<Dept> list=dao.getAll(5); for(Dept d:list){ System.out.println(d); } session.close(); }}
阅读全文
0 0
- 3.使用annotation配置
- 使用Annotation配置Action
- Hibernate4.2.2使用Annotation配置
- spring 2.5 中配置bean 使用annotation
- 使用 <context:annotation-config/> 简化配置
- 使用annotation减少spring bean的配置
- 使用annotation减少spring bean的配置
- Java_Web Project_如何使用Annotation配置Servlet?
- Struts2之Annotation注解配置使用
- android annotation配置及简单使用
- 使用annotation配置hibernate映射关系
- 使用annotation减少spring bean的配置
- 备忘-使用annotation减少spring bean的配置
- 使用Annotation编写Entity减少Spring,hibernate配置
- 配置整合DWR3.0和Spring2.5使用annotation注解
- Spring中使用配置多个tx:annotation-driven
- Struts2零配置开发(注解Annotation的使用)一
- Struts2零配置开发(注解Annotation的使用)二
- NOIP2012开车旅行&疫情控制解题记录
- javaweb框架之springmvc
- 对拍
- 简单的数据可视化,并加入了animation动态效果
- JAVA读取properties配置文件的方法
- 3.使用annotation配置
- Akka使用入门
- startActivity 的启动过程源码分析学习
- Python3:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
- 分治算法求解kth largest element问题
- Gson解析
- 本文转自:http://www.cnblogs.com/Charles2008/archive/2009/09/03/1559896.html
- struct跟踪算法
- [k8s]cm挂到不同镜像如何获取env?