mybatis会自动生成以下内容(即封装为接口,以下是底层逻辑)【具体见结尾内容】 executeQuery对应查询、executeUpdate对应增删改、execute对应建表 设已经创建一个hero表 有id,name,money 三个字段 //DBUtils链接数据库 try (Connection conn = DBUtils.getConn()){ //创建执行SQL语句的对象 Statement s = conn.createStatement(); //执行创建表的SQL语句 s.execute("create table hero(id int primary key auto_increment," +"name varchar(20),money double(10,2))"); s.executeUpdate("insert into hero values(null,'"+name+"',"+money+")"; //在里面查询出英雄表的所有信息并在控制台输出 ResultSet rs = s.executeQuery("select * from hero"); while (rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); double money = rs.getDouble(3); System.out.println(id+":"+name+":"+money); } } catch (SQLException throwables) { throwables.printStackTrace(); }
【结尾内容】
#{变量} 会自动查找方法参数列表中的同名变量,如果没有同名变量会查找自定义对象类型里面的同名属性并调用get变量的方法
接口mapper1
@Insert("insert into myemp values(null,#{name},#{sal},#{job})") void insert(Emp emp);、
通过Autowired的注解,Spring框架+Mybatis框架会自动根据此接口创建一个实现类并实例化该对象 @Autowired(required = false) //required=false 设置为非必须的对象 Mapper1 mapper; @RequestMapping("/insert") public String insert(Emp emp){ System.out.println("emp = " + emp); //调用mapper里面的方法,此时这个方法已经被Mybatis框架实现 mapper.insert(emp); return "添加完成!"; }