设为首页 收藏本站
查看: 1144|回复: 0

[经验分享] mybatis简单使用DAO方式(1)

[复制链接]

尚未签到

发表于 2016-11-25 06:43:16 | 显示全部楼层 |阅读模式
最近查询看可以下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&amp;characterEncoding=UTF-8&amp;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>
</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&amp;characterEncoding=UTF-8&amp;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();


}


注明:博客主要用来整理,记录学些的知识,然后与网友相互交流,若有不对,请指出,但不要有不文明行为

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-305058-1-1.html 上篇帖子: MyBatis-Spring MVC 整合示例(带源码) 下篇帖子: 利用MyBatis Generator自动创建代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表