MyBatis入门
package com.mybatis.pojo; public class User { private int id; private String name; private String dept; private String phone; private String website; public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } }
package com.mybatis.mapperinterface; import java.util.List; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import com.mybatis.pojo.User; public interface IUser { @Select("select * from user") public List<User> getUserList(); @Insert("insert into user set name=#{name},dept=#{dept},phone=#{phone},website=#{website}") public void addUser(User user); @Update("update user set phone=#{phone} where id=#{id}") public void updateUser(User user); @Select("select * from user where id=#{id}") public User getUser(int id); }
import java.io.Reader; import java.util.Iterator; import java.util.List; 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 com.mybatis.mapperinterface.IUser; import com.mybatis.pojo.User; public class HelloWord { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("config/Configure.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } public static SqlSessionFactory getSession() { return sqlSessionFactory; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub getUserList(); // addUser(); // update(); } private static void getUserList() { SqlSession session = sqlSessionFactory.openSession(); try { IUser usermap = session.getMapper(IUser.class); List<User> userList = usermap.getUserList(); Iterator<User> it = userList.iterator(); while(it.hasNext()) { User user = it.next(); String userInfo = "名字:"+user.getName()+", 所属部门:"+user.getDept()+", 主页:"+user.getWebsite(); System.out.println(userInfo); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { session.close(); } } private static void addUser() { SqlSession session = sqlSessionFactory.openSession(); try { IUser usermap = session.getMapper(IUser.class); User user = new User(); user.setName("niu"); user.setDept("hehehe"); user.setPhone("456123"); user.setWebsite("www.feiyang.com"); usermap.addUser(user); session.commit(); } catch(Exception e) { e.printStackTrace(); } finally { // TODO: handle finally clause session.close(); } } private static void update() { SqlSession session = sqlSessionFactory.openSession(); try { IUser usermap = session.getMapper(IUser.class); User user = usermap.getUser(1); user.setPhone("88888888"); usermap.updateUser(user); session.commit(); } catch(Exception e) { e.printStackTrace(); } finally { // TODO: handle finally clause session.close(); } } }
<?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> <!-- 这里是单个配置的,太麻烦了,还不如下边直接配个包<typeAliases> <typeAlias alias="User" type="com.mybatis.models.User" /> </typeAliases>--> <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://127.0.0.1:3306/mytest?useUni0code=true&characterEncoding=utf8&characterSetResults=utf8" /> <property name="username" value="root" /> <property name="password" value="745120" /> </dataSource> </environment> </environments> <mappers> <package name="com.mybatis.mapperinterface" /> </mappers> </configuration>