一聚教程网:一个值得你收藏的教程网站

热门教程

java连接mysql数据库配置及增删改查操作记录

时间:2022-06-29 03:13:43 编辑:袖梨 来源:一聚教程网

一、软件下载

直接到MySQL官网下载以下两个工具:mysql-5.1.32-win32.msi、mysql-gui-tools-5.0-r17-win32.msi
前者是MySQL的安装文件,后者是MySQL Tool安装文件,包括JDBC.

二、环境配置

把mysql-connector-java-5.0.4-bin.jar从MySQLMySQL Tools for 5.0javalib拷贝到D:Tomcat 6.0lib下,然后在classpath里面加入D:Tomcat 6.0libmysql-connector-java-5.0.4-bin.jar即可。
配置这个的目的是让你的java应用程序找到连接mysql的驱动。
拷贝这一步就是为JSP连接数据库配置驱动。

应用程序加载MySql驱动程序代码如下:

Try{
Class.forName(“com.mysql.jdbc.Driver”);
}
Catch(Exception e){}

(2)与指定的数据库建立连接。

假设应用程序和MySql服务器在同一台计算机上,那么应用程序和数据库Car建立连接的代码如下:
Try{
String uri=”jdbc:mysql://localhost:3306/Car”;
String user=”root”;
String password=”123”;
Con=DriverManager.getConnection(uri,user,password);
}
Catch(SQLException e){}

其中,root用户有权访问数据库Car,root用户的密码是123。如果root用户没有设置密码,那么将上述String password=”123”;更改为String password=””;

三:JSP页面中的数据库查询

要在JSP页面中实现数据库的查询主要有连接及查询数据库的java代码部分和html页面代码部分。实现这个页面,我们进行一个三步走

1、写出连接数据库的代码
2、写出用于显示页面的代码
3、将连接数据库的代码插入到页面代码的恰当位置。

1. 连接数据库的代码

1.1 导入sql包

<% import="java.sql.*" %>

1.2 连接、查询、关闭数据库
怎样查看冰箱里面有没有大象?1、打开冰箱门。2、看一下。3、关闭冰箱门。就是这个过程。。。。。
[html]
<%
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url="jdbc:mysql://localhost:3306/news";
    String user="root";
    String password="1234";
//配置并连接数据库
    Connection conn = DriverManager.getConnection(url, user, password);
    Statement st = conn.createStatement();
//查询语句,显示最后10条并且倒序排列
    ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");
//输出表头
    out.println("标题内容时间");
//依次输出每个查询结果
    while(rs.next()){
    out.print(""+rs.getString("title")+""+rs.getString("content")+""+rs.getString("date")+"
");
//如果采用列名,要加引号
    }
    out.print("


");
//断开数据库
    conn.close();
%>

2. 页面的HTML代码

为了页面漂亮一点,做点点美化~做一个表格来存放数据
 
[html]
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("UTF-8");%> 
<%response.setCharacterEncoding("UTF-8");%>


 



JSP页面中的数据库查询

 

 


    标题:

    内容:

   
 

   
 
   
   
   
 
    
    
 
   
   
   
 
 
 
标题 内容 时间
     



3. 把前面两个代码放在一起
放的时候注意代码的位置安排。
[html]
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("UTF-8");%> 
<%response.setCharacterEncoding("UTF-8");%> 


 



无标题文档11

 

 <%
 //连接MySQL数据库 
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url="jdbc:mysql://localhost:3306/news";
    String user="root";
    String password="1234";
    Connection conn = DriverManager.getConnection(url, user, password);
    Statement st = conn.createStatement();
    
 %>
   
 
   
   
   
 
    
<%
    //把表格第二行的显示放到while循环中,就可以根据查询结果画出表格了。参数则放在
   
   
   
 
 
<%}
//注意"}"的位置 %>
 
标题 内容 时间
内的相应位置。
    ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");
    while(rs.next()){%>
    
 
<%=rs.getString("title") %> <%=rs.getString("content") %> <%=rs.getString("time") %>

 
<%
    rs.close();
    conn.close();
 %> 

四JSP页面中的数据库插入
这次是怎样将大象放冰箱的命题了!大家都懂的!
我们要解决的主要有两个问题:
1、如何获取输入的内容
2、如何插入时间。
直接上代码
[html]
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%request.setCharacterEncoding("UTF-8");%> 
<%response.setCharacterEncoding("UTF-8");%> 


 



无标题文档11

 

 


    标题:

    内容:

   
 

 <%
 //连接MySQL数据库 
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    String url="jdbc:mysql://localhost:3306/news";
    String user="root";
    String password="1234";
    Connection conn = DriverManager.getConnection(url, user, password);
    Statement st = conn.createStatement();
    
 %>
   
 
   
   
   
 
    
<%
    
    ResultSet rs = st.executeQuery("SELECT * FROM data ORDER BY id DESC LIMIT 10");
    while(rs.next()){%>
    
 
   
   
   
 
 
<%} %>
 
标题 内容 时间
<%=rs.getString("title") %> <%=rs.getString("content") %> <%=rs.getString("time") %>

 
<%
//通过input中的name获取输入的内容。time那一行是获得时间及定义时间格式
    String getTitle=request.getParameter("title"); 
    String getContent=request.getParameter("content");
    java.text.SimpleDateFormat time = new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
    String insertSQL = "INSERT INTO data(title, content, time) Values ('"+getTitle+"', '"+getContent+"', ' "+time.format(new java.util.Date())+"')";
    st.executeUpdate(insertSQL);
 %>
<%
    rs.close();
    st.close();
    conn.close();
 %> 

例子:连接mysql数据库增删改查操作记录(好)

要将数据库jar包拷贝到工程下的WEB-INFlib下

[java] view plain copy print?
import java.sql.Connection;//java包
public class DBConnection
{
private String dbDriver=”com.mysql.jdbc.Driver”;
private String dbUrl=”jdbc:mysql://[ip地址]:[端口号]/[数据库名]“;//根据实际情况变化
private String dbUser=”root”;
private String dbPass=”root”;
public Connection getConn()
{
Connection conn=null;
try
{
Class.forName(dbDriver);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
try
{
conn = DriverManager.getConnection(dbUrl,dbUser,dbPass);//注意是三个参数
}
catch (SQLException e)
{
e.printStackTrace();
}
return conn;
}
}

2. 插入操作

[java] view plain copy print?
public int insert()
{
int i=0;
String sql=”insert into (表名)(列名1,列明2) values(?,?)”;
Connection cnn=getConn();

try{
PreparedStatement preStmt =cnn.prepareStement(sql);
preStmt.setString(1,值);
preStmt.setString(2,值);//或者:preStmt.setInt(1,值);
i=preStmt.executeUpdate();
}
catch (SQLException e)
{
e.printStackTrace();
}
return i;//返回影响的行数,1为执行成功
}
3. 更新操作
[java] view plain copy print?
public int update
{
int i=0;
String sql=”update (表名) set (列名1)=?,列明2=? where (列名)=?”;//注意要有where条件
Connection cnn=getConn();

try{
PreparedStatement preStmt =cnn.prepareStatement(sql);
preStmt.setString(1,(值));
preStmt.setString(2,(值));//或者:preStmt.setInt(1,值);
preStmt.setInt(3,(值));
i=preStmt.executeUpdate();
}
catch (SQLException e)
{
e.printStackTrace();
}
return i;//返回影响的行数,1为执行成功
}

 

4. 查找操作
[java] view plain copy print?
public String select
{
String sql = “select * from (表名) where (列名)=(值)”;
Connection cnn = getConn();//此处为通过自己写的方法getConn()获得连接
try
{
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);

if(rs.next())
{
int m1 = rs.getInt(1);//或者为rs.getString(1),根据数据库中列的值类型确定,参数为第一列
String m2 = rs.getString(2);
}
//可以将查找到的值写入类,然后返回相应的对象
}
catch (SQLException e)
{
e.printStackTrace();
}
return (相应的值的变量);
}

5. 删除操作
[java] view plain copy print?
public int delete()
{
String sql = “delete from (表名) where (列名)=(值)”;
int i=0;
Connection conn = getConn();//此处为通过自己写的方法getConn()获得连接
try
{
Statement stmt = conn.createStatement();
i = stmt.executeUpdate(sql);
}
catch (SQLException e)
{
e.printStackTrace();
}
return i;//如果返回的是1,则执行成功;
}

热门栏目