最近查询看可以下mybatis,以前是跟spring集合在一块,根据mapperfactory直接注入,mybatis dao bean就可以直接使用了,还没存在什么问题,但是单独使用的话,最近有些问题和不同方式(都是简单实用,熟练使用的绕过)
第一种:
mybatis还是根据映射来匹配
class和xml,所以mybatis中DAO还是和mapDAO.xml相互匹配,是通过属性namespace,这一点就像
struts2中namespace对应的命名空间,表单里面的namespace属性,
再通过session.getMapper(class)名字要与namespoace一致,方能获取,但是这样获取有时候会遇到问题,就是不能将interface映射成功,这就要注意路径,最好写完整路径。
示例
mapper配置文件
mapper namespace="mybatis.test.Db_userinforDao">
	
	<insert id="insert" parameterType="mybatis.test.Db_userinfor">
        insert into db_userinfor
		values(#{username},#{userpass},#{userinterest},#{useraddress},#{userphone},#{usergrades})
    </insert>
DAO文件
public interface Db_userinforDao{
	public void insert(Db_userinfor userinfor);
}  
mybatis文件
<?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/helper?useUnicode=true&characterEncoding=UTF-8&zeroDateTime
Behavior=convertToNull" />
                <property name="username" value="root" />
                <property name="password" value="root" />
                
            </dataSource>
        </environment>
    </environments>
    <mappers><!--
        <mapper resource="com/mybatis/config/UserDaoMapper.xml"/>
    -->
    	<mapper resource="mybatis/test/UserDaoMapper.xml" />
    </mappers>
    
</configuration>	
</mapper>
测试main类
<?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/helper?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" />
                <property name="username" value="root" />
                <property name="password" value="root" />
                
            </dataSource>
        </environment>
    </environments>
    <mappers><!--
        <mapper resource="com/mybatis/config/UserDaoMapper.xml"/>
    -->
    	<mapper resource="mybatis/test/UserDaoMapper.xml" />
    </mappers>
    
</configuration>
第二种:
比较简单,就是不使用DAO
接口,这时候namespace就随便取名字,直接使用session获取sql操作,比如session.insert("操作数据库的名字操作(命名空间+具体操作:userdao.insert)","参数"),这样的话非常直接,但是代码耦合度非常高,简单操作数据库是非常好的,但是碰到复杂一点的话,就不
合理
main代码:
	public static void main(String args[]) throws IOException{
		Reader reader=Resources.getResourceAsReader("mybatis.xml");
		SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
		SqlSessionFactory factory=builder.build(reader);
		BasicConfigurator.configure();
		SqlSession session=factory.openSession();
		
		//Db_userinforDao dao=session.getMapper(Db_userinforDao.class);
		Db_userinfor userinfor=new Db_userinfor();
		userinfor.setUsername("dsd");
		userinfor.setUserpass("yaoge22");
		userinfor.setUseraddress("www.");
		userinfor.setUsergrades("50");
		userinfor.setUserinterest("IT");
		userinfor.setUserphone("122");
		//不同操作
		session.insert("mybatis.test.Db_userinforDao.insert",userinfor);
		
		//dao.insert(userinfor);
		session.commit();
		session.close();
		
		
	}
注明:博客主要用来整理,记录学些的知识,然后与网友相互交流,若有不对,请指出,但不要有不文明行为