昨天刚接触mybatis,感觉吧。
对于我这个菜鸟来说,能学什么就是什么,完全没有感觉。。。
还是说说mybatis吧。
mybatis的配置xml,实体类,dao。
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> <typeAliases> <!--给实体类起一个别名 blog --> <typeAlias type="com.demo.po.Blog" alias="blog" /> </typeAliases> <!--数据源配置 这块用 mysql数据库 --> <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/jfinal_demo" /> <property name="username" value="root" /> <property name="password" value="123" /> </dataSource> </environment> </environments> <mappers> <!--blogMapper.xml装载进来 同等于把“dao”的实现装载进来 --> <mapper resource="com/demo/mybatis/blogMapper.xml" /> </mappers> </configuration>
dao (xxxxMapper.java)
// dao层 方法名要和xxxMapper.xml的select id对应起来
package com.demo.dao;
import com.demo.po.Blog;
public interface BlogMapper {
public Blog find(String id);
}
xxxxMapper.xml
<?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">
<!--这块等于dao接口的实现 namespace必须和接口的类路径一样-->
<mapper namespace="com.demo.dao.BlogMapper">
<!-- findById必须和接口中的方法名一样 返回一个Blog 就是刚才的别名 如果不弄别名要连类路径一起写 麻烦-->
<select id="find" parameterType="HashMap" resultType="Blog">
select
* from blog where id=#{id}
</select>
</mapper>
实体类
package com.demo.po;
public class Blog {
// 数据库字段
private int id;
private String title;
private String content;
// 添加get set方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
Test(测试类)
package com.demo.test;
import java.io.IOException;
import java.io.Reader;
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.demo.dao.BlogMapper;
import com.demo.po.Blog;
public class Test {
/**
* 获得MyBatis SqlSessionFactory
* SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。
* @return
*/
private static SqlSessionFactory getSessionFactory() {
SqlSessionFactory sessionFactory = null;
// 这块跟你的mybatis配置路径,最好写全,我就报过错
String resource = "com/demo/configuration.xml";
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources
.getResourceAsReader(resource));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sessionFactory;
}
public static void main(String[] args) {
SqlSession sqlSession = getSessionFactory().openSession();
BlogMapper blogMapper = sqlSession.getMapper(BlogMapper.class);
Blog blog = blogMapper.find("2");
System.out.println(blog.getTitle());
}
}
原文:http://my.oschina.net/u/1757165/blog/300541