注解:

  • 注解是用于描述代码的代码。例如:@Test(用于描述方法进行junit测试),@Override(用于描述方法的重写),@Param(用于描述属性的名称)
  • 注解的使用风格:@xxx(属性),使用前必须进行导包
  • 使用注解一般用于简化配置文件,但是注解有时候也不是很友好(有时候反而更麻烦),例如动态sql
  • 关于注解的属性

属性的设定方式是:属性名=属性值

  • 关于属性的类型
  1. 基本类型和String,可以直接使用双引号的形式
  2. 数组类型,name={值1,值2,......}如果数组元素只有一个,可以省略大括号。
  3. 对象类型,name=@对象名(属性)
  4. 如果属性是该注解的默认注解,而且该注解只配置这一个属性,key将属性名省略。

mybatis注解之CURD代码如下

  1. package com.bjsxt.mapper;
  2.  
  3. import java.util.List;
  4.  
  5. import org.apache.ibatis.annotations.Delete;
  6. import org.apache.ibatis.annotations.Insert;
  7. import org.apache.ibatis.annotations.Select;
  8. import org.apache.ibatis.annotations.Update;
  9.  
  10. import com.bjsxt.pojo.Student;
  11.  
  12. public interface StudentMapper {
  13.  
  14. @Select("select * from t_student")
  15. List<Student> selAll();
  16.  
  17. @Insert("insert into t_student values (default, #{name}, #{age}, #{gender}, #{cid})")
  18. int insStu(Student student);
  19.  
  20. @Update("update t_student set age=#{1} where id=#{0}")
  21. int updStu(int id, int age);
  22.  
  23. @Delete("delete from t_student where id=#{0}")
  24. int delStu(int id);
  25. }
  1. package com.bjsxt.pojo;
  2.  
  3. import java.io.Serializable;
  4.  
  5. public class Student implements Serializable {
  6.  
  7. private int id;
  8. private String name;
  9. private int age;
  10. private String gender;
  11. private int cid;
  12.  
  13. public Student() {
  14. super();
  15. }
  16.  
  17. public int getId() {
  18. return id;
  19. }
  20.  
  21. public void setId(int id) {
  22. this.id = id;
  23. }
  24.  
  25. public String getName() {
  26. return name;
  27. }
  28.  
  29. public void setName(String name) {
  30. this.name = name;
  31. }
  32.  
  33. public int getAge() {
  34. return age;
  35. }
  36.  
  37. public void setAge(int age) {
  38. this.age = age;
  39. }
  40.  
  41. public String getGender() {
  42. return gender;
  43. }
  44.  
  45. public void setGender(String gender) {
  46. this.gender = gender;
  47. }
  48.  
  49. public int getCid() {
  50. return cid;
  51. }
  52.  
  53. public void setCid(int cid) {
  54. this.cid = cid;
  55. }
  56.  
  57. @Override
  58. public int hashCode() {
  59. final int prime = 31;
  60. int result = 1;
  61. result = prime * result + age;
  62. result = prime * result + cid;
  63. result = prime * result + ((gender == null) ? 0 : gender.hashCode());
  64. result = prime * result + id;
  65. result = prime * result + ((name == null) ? 0 : name.hashCode());
  66. return result;
  67. }
  68.  
  69. @Override
  70. public boolean equals(Object obj) {
  71. if (this == obj)
  72. return true;
  73. if (obj == null)
  74. return false;
  75. if (getClass() != obj.getClass())
  76. return false;
  77. Student other = (Student) obj;
  78. if (age != other.age)
  79. return false;
  80. if (cid != other.cid)
  81. return false;
  82. if (gender == null) {
  83. if (other.gender != null)
  84. return false;
  85. } else if (!gender.equals(other.gender))
  86. return false;
  87. if (id != other.id)
  88. return false;
  89. if (name == null) {
  90. if (other.name != null)
  91. return false;
  92. } else if (!name.equals(other.name))
  93. return false;
  94. return true;
  95. }
  96.  
  97. @Override
  98. public String toString() {
  99. return "Student [id=" + id + ", name=" + name + ", age=" + age + ", gender=" + gender + ", cid=" + cid + "]";
  100. }
  101. }
  1. package com.bjsxt.test;
  2.  
  3. import java.util.List;
  4.  
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.junit.Test;
  7.  
  8. import com.bjsxt.mapper.StudentMapper;
  9. import com.bjsxt.pojo.Student;
  10. import com.bjsxt.util.MyBatisUtil;
  11.  
  12. public class TestStu {
  13.  
  14. @Test
  15. public void testSel() {
  16. SqlSession session = MyBatisUtil.getSession();
  17.  
  18. StudentMapper mapper = session.getMapper(StudentMapper.class);
  19.  
  20. List<Student> list = mapper.selAll();
  21. for (Student student : list) {
  22. System.out.println(student);
  23. }
  24.  
  25. session.close();
  26. }
  27. @Test
  28. public void testIns() {
  29. SqlSession session = MyBatisUtil.getSession();
  30.  
  31. StudentMapper mapper = session.getMapper(StudentMapper.class);
  32.  
  33. Student student = new Student();
  34. student.setName("小王");
  35. student.setAge(20);
  36. student.setGender("女");
  37. student.setCid(2);
  38.  
  39. int num = mapper.insStu(student);
  40. if(num > 0) {
  41. System.out.println("ok");
  42. session.commit();
  43. } else {
  44. session.rollback();
  45. }
  46.  
  47. session.close();
  48. }
  49. @Test
  50. public void testUpd() {
  51. SqlSession session = MyBatisUtil.getSession();
  52.  
  53. StudentMapper mapper = session.getMapper(StudentMapper.class);
  54.  
  55. int num = mapper.updStu(6, 30);
  56. if(num > 0) {
  57. System.out.println("ok");
  58. session.commit();
  59. } else {
  60. session.rollback();
  61. }
  62.  
  63. session.close();
  64. }
  65. @Test
  66. public void testDel() {
  67. SqlSession session = MyBatisUtil.getSession();
  68.  
  69. StudentMapper mapper = session.getMapper(StudentMapper.class);
  70.  
  71. int num = mapper.delStu(6);
  72. if(num > 0) {
  73. System.out.println("ok");
  74. session.commit();
  75. } else {
  76. session.rollback();
  77. }
  78.  
  79. session.close();
  80. }
  81. }
  1. package com.bjsxt.util;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5.  
  6. import org.apache.ibatis.io.Resources;
  7. import org.apache.ibatis.session.SqlSession;
  8. import org.apache.ibatis.session.SqlSessionFactory;
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  10.  
  11. public class MyBatisUtil {
  12.  
  13. private static SqlSessionFactory factory = null;
  14.  
  15. static {
  16. try {
  17. InputStream is = Resources.getResourceAsStream("mybatis-cfg.xml");
  18. factory = new SqlSessionFactoryBuilder().build(is);
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23.  
  24. public static SqlSession getSession() {
  25. SqlSession session = null;
  26. if (factory != null) {
  27. // true表示开启自动提交
  28. // session = factory.openSession(true);
  29. session = factory.openSession();
  30. }
  31. return session;
  32. }
  33. }
  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/java505
  3. jdbc.username=root
  4. jdbc.password=root
  1. # Set root category priority to INFO and its only appender to CONSOLE.
  2. log4j.rootCategory=ERROR, CONSOLE
  3. # log4j.rootCategory=DEBUG, CONSOLE, LOGFILE
  4.  
  5. # 单独设置SQL语句的输出级别为DEBUG级别
  6. log4j.logger.com.bjsxt.mapper=DEBUG
  7.  
  8. # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
  9. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
  10. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
  11. log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
  12.  
  13. # LOGFILE is set to be a File appender using a PatternLayout.
  14. log4j.appender.LOGFILE=org.apache.log4j.FileAppender
  15. log4j.appender.LOGFILE.File=d:/test.log
  16. log4j.appender.LOGFILE.Append=true
  17. log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
  18. log4j.appender.LOGFILE.layout.ConversionPattern=- %m %l%n
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!-- properties加载外部文件 -->
  7. <properties resource="db.properties" />
  8. <!-- settings标签 -->
  9. <settings>
  10. <!-- 设置MyBatis使用log4j日志支持 -->
  11. <setting name="logImpl" value="LOG4J"/>
  12. </settings>
  13. <!-- typeAliases给类型起别名 -->
  14. <typeAliases>
  15. <package name="com.bjsxt.pojo" />
  16. </typeAliases>
  17. <environments default="dev">
  18. <environment id="dev">
  19. <transactionManager type="JDBC" />
  20. <dataSource type="POOLED">
  21. <property name="driver" value="${jdbc.driver}"/>
  22. <property name="url" value="${jdbc.url}"/>
  23. <property name="username" value="${jdbc.username}"/>
  24. <property name="password" value="${jdbc.password}"/>
  25. </dataSource>
  26. </environment>
  27. </environments>
  28. <mappers>
  29. <package name="com.bjsxt.mapper" />
  30. </mappers>
  31. </configuration>

mybatis之注解式开发的更多相关文章

  1. mybatis之注解式开发之关联查询

    package com.bjsxt.mapper; import org.apache.ibatis.annotations.Select; import com.bjsxt.pojo.Clazz; ...

  2. 13.MyBatis注解式开发

    mybatis 的注解,主要是用于替换映射文件.而映射文件中无非存放着增.删.改.查 的 SQL 映射标签.所以,mybatis 注解,就是要替换映射文件中的 SQL 标签. mybatis 官方文档 ...

  3. MyBatis_注解式开发

    一.注解式开发 mybatis的注解主要替换映射文件. 二.基础语法 注解首字母大写,因为注解与类.接口是同一级别的(类同一层级的:类,接口,注解,枚举).一个注解,后台对应着一个@interface ...

  4. Spring MVC (二)注解式开发使用详解

    MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @ ...

  5. 【转】Eclipse中设置ButterKnife进行注解式开发步骤 -- 不错

    原文网址:http://www.bubuko.com/infodetail-974262.html 最近在进行Android注解式开发的学习,正在尝试用ButterKnife.ButterKnife的 ...

  6. 总结切面编程AOP的注解式开发和XML式开发

    有段日子没有总结东西了,因为最近确实有点忙,一直在忙于hadoop集群的搭建,磕磕碰碰现在勉强算是能呼吸了,因为这都是在自己的PC上,资源确实有点紧张(搭建过程后期奉上),今天难得大家都有空(哈哈哈~ ...

  7. SpringMVC 注解式开发

    SpringMVC的注解式开发是指,处理器是基于注解的类的开发.对于每一个定义的处理器,无需再配置文件中逐个注册,只需在代码中通过对类与方法的注解,便可完成注册.即注解替换是配置文件中对于处理器的注册 ...

  8. Spring MVC注解式开发

    MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @ ...

  9. 《SpringMVC从入门到放肆》十一、SpringMVC注解式开发处理器方法返回值

    上两篇我们对处理器方法的参数进行了分别讲解,今天来学习处理器方法的返回值. 一.返回ModelAndView 若处理器方法处理完后,需要跳转到其它资源,且又要在跳转资源之间传递数据,此时处理器方法返回 ...

随机推荐

  1. grafana----alert

    Alert只有grafana V4.0以上. Introduction(介绍) Grafana中的alert允许在dashboard panels你附加一些规则.当你保存仪表板Grafana将提取的报 ...

  2. confd template src格式和 templates 语法

    Template Resources Template resources are written in TOML and define a single template resource. Tem ...

  3. sql 一对多查询

    1. 一对多查询 查询departmentinfo字典下所有部门的人员数量 select * from departmentinfo a left join (select count(*) User ...

  4. Visio 画图

    流程图 圆角矩形表示"开始"与"结束" 矩形表示行动方案.普通工作环节用 菱形表示问题判断或判定(审核/审批/评审)环节 平行四边形表示输入输出 箭头代表工作流 ...

  5. js的序列化和反序列化

    (1)序列化 即js中的Object转化为字符串  1.使用toJSONString var last=obj.toJSONString(); //将JSON对象转化为JSON字符 2.使用strin ...

  6. 图->连通性->最小生成树(克鲁斯卡尔算法)

    文字描述 上一篇博客介绍了最小生成树(普里姆算法),知道了普里姆算法求最小生成树的时间复杂度为n^2, 就是说复杂度与顶点数无关,而与弧的数量没有关系: 而用克鲁斯卡尔(Kruskal)算法求最小生成 ...

  7. 使用@import导入实现了ImportBeanDefinitionRegistrar接口的类,不能被注册为bean

    今天在调试公司spring项目的时候发现了这样一个问题,由于我们的项目使用的是springboot就以springboot为例,代码如下: @Import({DataSourceRegister.cl ...

  8. ECharts图形库

    ECharts图形库百度的项目,图形的创建也比较简单,直接引用Javascript即可 1,引入<script src="{{ url_for("static",f ...

  9. 机器Coding For WPF

    declare @modelcode varchar(90)='AutoProjectType'declare @ns varchar(90)='WpfApplication'declare @dat ...

  10. fiddler 实现代理的操作