会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132575个问题
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 26401楼

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 26403楼
Python 全系列/第七阶段:网页编程基础/JavaScript 26404楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 26405楼
JAVA 全系列/第四阶段:网页编程和设计/CSS3(旧) 26406楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 26408楼
WEB前端全系列/第六阶段:Http服务与Ajax模块(旧)/Http服务与Ajax编程 26409楼
Python 全系列/第一阶段:Python入门/函数和内存分析 26411楼
JAVA 全系列/第二十一阶段:分布式医疗云平台/项目简介(旧) 26412楼

#coding=utf-8
'''组件对象的绑定
1.通过command属性绑定(适合简单不需获取event对象) Button(root,text="登录",command=login)
2.通过bind()方法绑定(适合需要获取evnet对象) c1 = Canvas(); c1.bind("<Button-1>",drawLine)
   组件类的绑定
调用对象的bind_class函数,将该组件类所有的组件绑定事件:
w.bind_class("Widget","event",eventhanler) 比如:btn01.bind_class("Button","<Button-1>",func)
'''
#多种事件绑定方式汇总
from tkinter import *
root = Tk()
root.geometry("270x30")

def mouseTest1(event):
    print("bind()方式绑定,可获取event对象")
    print(event.widget)

def mouseTest2(a, b):
    print("a={0}, b={1}".format(a, b))
    print("command方式绑定,不能直接获取event对象")

def mouseTest3(event):
    print("钟呢呢右键单击事件,绑定给所有按钮啦!!")
    print(event.widget)

b1 = Button(root, text="测试bind()绑定") #第一个按钮b1
b1.pack(side="left")
b1.bind("<Button-1>", mouseTest1) #bind方式绑定事件

b2 = Button(root, text="测试command绑定", command=lambda: mouseTest2("xiannv", "zhongnene"))#第二个按钮b2 通过lambda直接传参
b2.pack(side="left")

b1.bind_class("<Button>", "<Button-2>", mouseTest3)#给所有Button按钮都绑定右键单击事件<Button-2>

root.mainloop()

<button-2>为鼠标中键,然而单击鼠标中键没反应

看视频高老师是单击的鼠标右键 我也试了但也没反应

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 26413楼
Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 26414楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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