VitoYi
VitoYi
2017-05-17 05:56
采纳率: 70%
浏览 934
已采纳

学习mybatis遇到的问题

工程结构:
图片说明

先配置了jdbc的.properties文件:
图片说明

mybatis-config.xml文件:
图片说明

映射数据表的POJO类:
图片说明

mapper.xml文件:
图片说明

用来测试的JUnit类:
图片说明

运行后出现的问题:
图片说明

异常:
图片说明

请问是什么原因,如何解决?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • u013829202
    觅夜的黑 2017-05-17 09:38
    已采纳

    你的jdbc.properties中的Ip写错了。 应该是127.0.0.1

    点赞 评论
  • theUncle
    paavochan 2017-05-17 06:14

    将你的userMapper.xml里的resultType 后面修改为 resultType="java.lang.Integer"

    点赞 评论
  • qq_33287156
    java午夜 2017-05-17 06:15

    在 mybatis-config.xml文件:value="${url}"把你的#改成$

    点赞 评论
  • ctrl7416
    _小_小_ 2017-05-17 07:14

    把你的mapper.xml移到 resources 下 试试

    点赞 评论
  • ctrl7416
    _小_小_ 2017-05-17 07:21

    图片说明

    点赞 评论
  • ctrl7416
    _小_小_ 2017-05-17 07:25

    再试下 把 selectOne("xx.xxx.UserMapper)
    修改 为 userMapper 小写的. 或者把文件修为大写的

    点赞 评论
  • wjh9319
    wujh2017 2017-05-17 07:45

    selectOne里面只填写select的id试试

    点赞 评论
  • sun1021873926
    夕阳雨晴 2017-05-17 07:45

    数据源中的name应用这样写,主要是驱动。

     <!-- 1.数据源:DriverManagerDataSource -->
        <bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://localhost:3306/csdn_test"></property>
            <property name="username" value="root"></property>
            <property name="password" value="555222"></property>
        </bean>
    
    点赞 评论
  • zhong2zheng0319
    疯子要来了 2017-05-18 07:49

    结构
    jar

    roject="${targetProject}" type="XMLMAPPER">

        <!-- 要生成的表 tableName 是数据库中的表名或视图名 domainObjectName 是实体类名 -->
        <table tableName="jcmarryout" domainObjectName="Jcmarryout" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
            <generatedKey column="jcmarryoutid" sqlStatement="Mysql" identity="true" />
        </table>
    
    
    
    </context>
    

    jdbc.properties

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/bookmangae?useUnicode=true&characterEncoding=utf-8
    username=root
    password=123
    validationQuery=SELECT 1

    mysql.classPath=G:javajava_liblog4jdbcmysql-connector-java-5.1.22-bin.jar

    \u6570\u636e\u5e93\u914d\u7f6e

    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://127.0.0.1:3306/zupu?useUnicode=true&characterEncoding=utf-8
    &zeroDateTimeBehavior=convertToNull
    jdbc.user=root
    jdbc.password=1234
    #\u5305\u6587\u4ef6\u4f4d\u7f6e
    targetProject=batis
    package.model=com.zhongzheng.po.jcmarryout
    package.sql.mapper=com.zhongzheng.mapping.jcmarryout
    package.dao.mapper=com.zhongzheng.dao.jcmarryout

    点赞 评论
  • zhong2zheng0319
    疯子要来了 2017-05-18 07:53

    结构
    jar

     注意:需要mysql-connector-java-5.1.22-bin.jar 
     <!-- <classPathEntry location="G:\java\java_lib\log4jdbc\mysql-connector-java-5.1.22-bin.jar" />  -->
    
    
    
    generatorConfig.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <generatorConfiguration>
        <properties resource="jdbc.properties" />  
        <!-- classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 -->  
        <classPathEntry location="G:\java\java_lib\log4jdbc\mysql-connector-java-5.1.22-bin.jar" />  
        <context id="Mysql" targetRuntime="MyBatis3" defaultModelType="flat">
               <!--  关闭自动生成的注释  -->
               <commentGenerator>
                    <property name="suppressAllComments" value="true" />
                    <property name="beginningDelimiter" value="`"/>
                    <property name="endingDelimiter" value="`"/>
                </commentGenerator>    
                <!--  关闭自动生成的注释  -->
    
            <!-- 数据库链接URL,用户名、密码 -->
            <jdbcConnection connectionURL="${jdbc.url}" driverClass="${jdbc.driverClass}"
                password="${jdbc.password}" userId="${jdbc.user}" />
    
            <!-- 指定JDBC和Java类型转换 -->  
            <javaTypeResolver>  
                <!-- 是否使用bigDecimal,默认为false false可自动转化以下类型(Long, Integer, Short, etc.) --> 
                <property name="forceBigDecimals" value="false" />  
            </javaTypeResolver>  
    
            <!-- 生成模型的包名和位置 -->
            <javaModelGenerator targetPackage="${package.model}" targetProject="${targetProject}">
                <property name="constructorBased" value="true" />
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
                <!-- <property name="rootClass" value="com.ajs.base.BaseEntity" /> -->
            </javaModelGenerator>
    
            <!-- 生成映射文件的包名和位置 -->
            <sqlMapGenerator targetPackage="${package.sql.mapper}" targetProject="${targetProject}">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <!-- 生成DAO的包名和位置 -->
            <javaClientGenerator targetPackage="${package.dao.mapper}" targetProject="${targetProject}" type="XMLMAPPER">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>       
    
            <!-- 要生成的表 tableName 是数据库中的表名或视图名 domainObjectName 是实体类名 -->
            <table tableName="jcmarryout" domainObjectName="Jcmarryout" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
                <generatedKey column="jcmarryoutid" sqlStatement="Mysql" identity="true" />
            </table>
    
    
    
        </context>
    </generatorConfiguration>
    
    
    
    jdbc.properties
    
    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/bookmangae?useUnicode=true&amp;characterEncoding=utf-8
    username=root
    password=123
    validationQuery=SELECT 1
    
    mysql.classPath=G\:javajava_liblog4jdbcmysql-connector-java-5.1.22-bin.jar
    # \u6570\u636e\u5e93\u914d\u7f6e
    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://127.0.0.1:3306/zupu?useUnicode=true&amp;characterEncoding=utf-8
    &zeroDateTimeBehavior=convertToNull
    jdbc.user=root
    jdbc.password=1234
    #\u5305\u6587\u4ef6\u4f4d\u7f6e
    targetProject=batis
    package.model=com.zhongzheng.po.jcmarryout
    package.sql.mapper=com.zhongzheng.mapping.jcmarryout
    package.dao.mapper=com.zhongzheng.dao.jcmarryout
    
    点赞 评论

相关推荐