jsp显示mysql数据库_java连接mysql数据库(jsp显示和控制台显示)

本文介绍如何使用Java连接MySQL数据库并将结果展示在JSP页面上。讲解了配置JDK、MySQL、Eclipse和数据库驱动的过程,强调了在Dynamic Web Project中正确放置驱动jar包的位置。通过示例代码展示了创建连接、执行SQL查询并在JSP页面显示数据的步骤,同时提供了创建、插入、查找、删除和更新表的接口实现。
摘要由CSDN通过智能技术生成

很多事情,在我们没有做之前我们觉得好难,但是只要你静下心来,毕竟这些都是人搞出来的,只要你是人,那就一定可以明白。

配置:JDK1.8,MySQL5.7,eclipse:Neon Release (4.6.0),connector:mysql-connector-java-3.1.6-bin.jar

1、java连接数据库,并将结果显示在jsp页面中

这里需要用到tomcat服务器,怎么配置可以百度,下面会给出项目的工程配置和源代码以及实际运行效果。

这里,需要注意的一点是关于mysql-connector-java-3.1.6-bin.jar(版本随意,不要太旧就行)的配置,由于我新建的是“WEB->Dynamic Web project”,所以我们需要把mysql-connector-java-3.1.6-bin.jar放在WebContent->WEB-INF->lib文件夹下。不然会出现下图所示的错误。

3b09fdebaaa02930d617ca362b9abdf1.png

由于是Dynamic Web project,所以不能采用Build Path->Configure Build Path->Add External JARs的形式添加mysql-connector-java-3.1.6-bin.jar,如果你执意要如此,还是会出现上图所示的找不到合适驱动的错误。

下面给出正确的工程拓扑结构及源码:

131fc516a38815c514e962f0512e1096.png

web.xml源码:

JDBCTest1

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

index.jsp源码:

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundException e) {

System.out.println("加载数据库驱动时抛出异常,内容如下:");

e.printStackTrace();

}

Connection conn=DriverManager

.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8","root", "w513723");

Statement stmt=conn.createStatement();

ResultSet rs=stmt

.executeQuery("select * from user");while(rs.next()) {

out.println("ID:"+rs.getString(1)+" "+"用户名:" + rs.getString(2)+" " + " 密码:" + rs.getString(3)+".mdb
");

}

rs.close();

stmt.close();

conn.close();%>

Insert title here

user表结构:

a16dd6abf1b8f2370fb6c89beae6d59c.png

实际运行效果:

0732cb6e734a4896a93e380ce40a8b5c.png

2、java连接数据库,封装创建、插入、查找接口

这个没有太多讲的,这里与上面的区别在于这是普通的java工程,不是动态web项目,所以mysql-connector-java-3.1.6-bin.jar使用Build Path->Configure Build Path->Add External JARs添加即可。

(代码源于《JAVA web程序设计 慕课版》明日科技)有时间我会增减删除和更新表的操作。

工程拓扑结构:

74cdef15b7c287f5126b27d8b37d3936.png

源代码:

JDBCUtil.java

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;public classJDBCUtil {/*使用静态代码块完成驱动的加载*/

static{try{

String driverName= "com.mysql.jdbc.Driver";

Class.forName(driverName);

}catch(Exception e) {

e.printStackTrace();

}

}/*提供连接的方法*/

public staticConnection getConnection() {

Connection con= null;try{//连接指定的MMySQL数据库,三个参数分别是:数据库地址、账号、密码

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf8", "root", "w513723");

}catch(Exception e) {

e.printStackTrace();

}returncon;

}/*关闭连接的方法*/

public static voidclose(ResultSet rs, Statement stmt, Connection con) {try{if (rs != null)

rs.close();

}catch(Exception ex) {

ex.printStackTrace();

}try{if (stmt != null)

stmt.close();

}catch(Exception ex) {

ex.printStackTrace();

}try{if (con != null)

con.close();

}catch(Exception ex) {

ex.printStackTrace();

}

}

}

DaoTest.java

importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classDaoTest {

Connection con;

Statement stmt;

ResultSet rs;publicConnection getCon() {returncon;

}publicStatement getStmt() {returnstmt;

}publicResultSet getRs() {returnrs;

}publicDaoTest(Connection con) {this.con =con;try{

stmt=con.createStatement();

}catch(SQLException e) {

e.printStackTrace();

}

}public void createTable() throwsSQLException {

stmt.executeUpdate("DROP TABLE IF EXISTS `jdbc_test` ");//删除相同名称的表

String sql = "create table jdbc_test(id int,name varchar(100)) ";

stmt.executeUpdate(sql);//执行SQL

System.out.println("jdbc_test表创建完毕");

}public void insert() throwsSQLException {

String sql1= "insert into jdbc_test values(1,'tom') ";

String sql2= "insert into jdbc_test values(2,'张三') ";

String sql3= "insert into jdbc_test values(3,'999') ";

stmt.addBatch(sql1);

stmt.addBatch(sql2);

stmt.addBatch(sql3);int[] results = stmt.executeBatch();//批量运行sql

for (int i = 0; i < results.length; i++) {

System.out.println("第" + (i + 1) + "次插入返回" + results[0] + "条结果");

}

}public void select() throwsSQLException {

String sql= "select id,name from jdbc_test ";

rs=stmt.executeQuery(sql);

System.out.println("---数据库查询的结果----");

System.out.println("id\tname");

System.out.println("---------------------");while(rs.next()) {

String id= rs.getString("id");

String name= rs.getString("name");

System.out.print(id+ "\t" + name+"\n");

}

}public static voidmain(String[] args) {

Connection con=JDBCUtil.getConnection();

DaoTest dao= newDaoTest(con);try{

dao.createTable();

dao.insert();

dao.select();

}catch(SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(dao.getRs(), dao.getStmt(), dao.getCon());

}

}

}

程序运行控制台输出:

4fa1ee3cc997c656c92ae50d50d1c81f.png

数据库查询结构:

6625645e71a70e62ddf4362beb301b51.png

增加删除和更新操作(其实很简单的,当初为什么没有写呢?被吓到了???)

importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classDaoTest {

Connection con;

Statement stmt;

ResultSet rs;publicConnection getCon() {returncon;

}publicStatement getStmt() {returnstmt;

}publicResultSet getRs() {returnrs;

}publicDaoTest(Connection con) {this.con =con;try{

stmt=con.createStatement();

}catch(SQLException e) {

e.printStackTrace();

}

}public void createTable() throwsSQLException {

stmt.executeUpdate("DROP TABLE IF EXISTS `jdbc_test` ");//删除相同名称的表

String sql = "create table jdbc_test(id int,name varchar(100)) ";

stmt.executeUpdate(sql);//执行SQL

System.out.println("jdbc_test表创建完毕");

}public void insert() throwsSQLException {

String sql1= "insert into jdbc_test values(1,'tom') ";

String sql2= "insert into jdbc_test values(2,'张三') ";

String sql3= "insert into jdbc_test values(3,'999') ";

stmt.addBatch(sql1);

stmt.addBatch(sql2);

stmt.addBatch(sql3);int[] results = stmt.executeBatch();//批量运行sql

for (int i = 0; i < results.length; i++) {

System.out.println("第" + (i + 1) + "次插入返回" + results[0] + "条结果");

}

}public void select() throwsSQLException {

String sql= "select id,name from jdbc_test ";

rs=stmt.executeQuery(sql);

System.out.println("---数据库查询的结果----");

System.out.println("id\tname");

System.out.println("---------------------");while(rs.next()) {

String id= rs.getString("id");

String name= rs.getString("name");

System.out.print(id+ "\t" + name+"\n");

}

}public void delete() throwsSQLException

{

String sql="delete from jdbc_test where id in (1,2)";int tmp=stmt.executeUpdate(sql); //这里函数的返回值表示成功删除了多少条数据

if (tmp<1)

{

System.out.println("要删除的数据不存在或删除错误!");

}else{

System.out.println("成功删除"+tmp+"条数据");

}

}public void update() throwsSQLException

{

String sql="update jdbc_test set name='shuai' where id=3";int tmp=stmt.executeUpdate(sql); //这里函数的返回值表示成功更新了多少条数据

if (tmp<1)

{

System.out.println("需要更新的数据不存在或更新错误!");

}else{

System.out.println("成功更新"+tmp+"条数据");

}

}public static voidmain(String[] args) {

Connection con=JDBCUtil.getConnection();

DaoTest dao= newDaoTest(con);try{

dao.createTable();

dao.insert();

dao.select();

dao.delete();

dao.select();

dao.update();

dao.select();

}catch(SQLException e) {

e.printStackTrace();

}finally{

JDBCUtil.close(dao.getRs(), dao.getStmt(), dao.getCon());

}

}

}

运行截图:

1745fd5f5cfe6e803158df5afc354d0d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值