会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132444个问题
Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 18891楼
Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask之Jinja2模版 18894楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 18895楼

Mybatis_Mybatis入门案例

导入jar包

image.png

pojo包

com.bjsxt.pojoUsers {
    String String () {
        }

    (userid) {
        .= userid}

    String () {
        }

    (String username) {
        .= username}

    String () {
        }

    (String usersex) {
        .= usersex}
}

mybatis-cfg.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>

   <!--引入properties文件-->
   <properties resource="db.properties"/>

   <!--环境的配置-->
   <environments default="development">
       <environment id="development">
           <!--配置事务-->
           <transactionManager type="JDBC"></transactionManager>
           <!--配置数据源-->
           <dataSource type="POOLED">
               <property name="driver" value="${jdbc.driver}"/>
               <property name="url" value="${jdbc.url}"/>
               <property name="username" value="${jdbc.username}"/>
               <property name="password" value="#{jdbc.password}"/>
           </dataSource>
       </environment>
   </environments>
   <!--引入映射配置文件-->
   <mappers>
       <!--使用相对路径方式引入-->
       <mapper resource="com/bjsxt/mapper/UsersMapper.xml"/>
   </mappers>
</configuration>

bd.properties文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/bjsxt
jdbc.username=root
jdbc.password=root

mapper包

select * from users

dao包

com.bjsxt.daocom.bjsxt.pojo.Usersjava.io.IOExceptionjava.util.ListUsersDao {
    List<Users> () IOException}

impl包

package com.bjsxt.dao.impl;

import com.bjsxt.dao.UsersDao;
import com.bjsxt.pojo.Users;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class UsersDaoImpl implements UsersDao {
    /**
     * 查询所有用户
     * @return
     */
    @Override
    public List<Users> selectUsersAll() throws IOException {
        //创建SqlSessionFactory对象
        InputStream inputStream = Resources.getResourceAsStream("mybatis-cfg.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //获取SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //通过SqlSession对象下的API完成对数据库的操作
        List<Users> list = sqlSession.selectList("com.bjsxt.mapper.UserMapper.selectUsersAll");
        //关闭SqlSession对象
        sqlSession.close();
        return list;
    }
}

test包

com.bjsxt.testcom.bjsxt.dao.UsersDaocom.bjsxt.dao.impl.UsersDaoImplcom.bjsxt.pojo.Usersjava.io.IOExceptionjava.util.ListTest {
    (String[] args)IOException {
        UsersDao usersDao = UsersDaoImpl()List<Users> list = usersDao.selectUsersAll()(Users users:list){
            System..println(users.getUserid()++users.getUsername()++users.getUsersex())}
    }
}

报警

D:\Java\jdk1.8.0_192\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1\lib\idea_rt.jar=52913:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "D:\java\jdk1.8.0_192\jre\lib\charsets.jar;D:\java\jdk1.8.0_192\jre\lib\deploy.jar;D:\java\jdk1.8.0_192\jre\lib\ext\access-bridge-64.jar;D:\java\jdk1.8.0_192\jre\lib\ext\cldrdata.jar;D:\java\jdk1.8.0_192\jre\lib\ext\dnsns.jar;D:\java\jdk1.8.0_192\jre\lib\ext\jaccess.jar;D:\java\jdk1.8.0_192\jre\lib\ext\jfxrt.jar;D:\java\jdk1.8.0_192\jre\lib\ext\localedata.jar;D:\java\jdk1.8.0_192\jre\lib\ext\nashorn.jar;D:\java\jdk1.8.0_192\jre\lib\ext\sunec.jar;D:\java\jdk1.8.0_192\jre\lib\ext\sunjce_provider.jar;D:\java\jdk1.8.0_192\jre\lib\ext\sunmscapi.jar;D:\java\jdk1.8.0_192\jre\lib\ext\sunpkcs11.jar;D:\java\jdk1.8.0_192\jre\lib\ext\zipfs.jar;D:\java\jdk1.8.0_192\jre\lib\javaws.jar;D:\java\jdk1.8.0_192\jre\lib\jce.jar;D:\java\jdk1.8.0_192\jre\lib\jfr.jar;D:\java\jdk1.8.0_192\jre\lib\jfxswt.jar;D:\java\jdk1.8.0_192\jre\lib\jsse.jar;D:\java\jdk1.8.0_192\jre\lib\management-agent.jar;D:\java\jdk1.8.0_192\jre\lib\plugin.jar;D:\java\jdk1.8.0_192\jre\lib\resources.jar;D:\java\jdk1.8.0_192\jre\lib\rt.jar;D:\code\servlet\mybatisdemo\out\production\mybatisdemo;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\asm-7.1.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\cglib-3.3.0.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\ognl-3.2.14.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\log4j-1.2.17.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\mybatis-3.5.5.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\log4j-api-2.13.3.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\slf4j-api-1.7.30.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\log4j-core-2.13.3.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\commons-logging-1.2.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\javassist-3.27.0-GA.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\slf4j-log4j12-1.7.30.jar;D:\SSM 框架和项目开发 Mybatis\SSM 框架和项目开发 Mybatis\软件\lib\mysql-connector-java-5.1.48.jar" com.bjsxt.test.Test

log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Thu Dec 31 13:19:56 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

### The error may exist in com/bjsxt/mapper/UsersMapper.xml

### The error may involve com.bjsxt.mapper.UserMapper.selectUsersAll

### The error occurred while executing a query

### Cause: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:135)

at com.bjsxt.dao.impl.UsersDaoImpl.selectUsersAll(UsersDaoImpl.java:27)

at com.bjsxt.test.Test.main(Test.java:13)

Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:864)

at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1707)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1217)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2189)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2220)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2015)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:768)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:385)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:323)

at java.sql.DriverManager.getConnection(DriverManager.java:664)

at java.sql.DriverManager.getConnection(DriverManager.java:208)

at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:224)

at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:219)

at org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:95)

at org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:432)

at org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:89)

at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:139)

at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:61)

at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)

at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)

at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)

at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)

at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)

at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)

at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)

... 4 more


Process finished with exit code 1


JAVA 全系列/第六阶段:项目管理与SSM框架/Mybatis 18898楼
WEB前端全系列/第二阶段:JavaScript编程模块/运算符_数据类型和流程循环语句 18900楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637