如我的导的是mysql-connector-java-5.1.40.jar
2.注册驱动
注册驱动代码为:Class.forName("com.mysql.jdbc.Driver")
3.获取连接
Connection con = DriverManager.getConnection(url,username,password)
其中url为 jdbc:mysql://localhost:3306/xun?useSSL=false,后面那个xun为数据库的库名,如果不使用加密的话,?useSSL=false这个其实也可以省略,省略后为jdbc:mysql://localhost:3306/xun,不过最好还是别省略哈。
4.获取PrepareStatement并发送sql查询语句
String sql = "select * from user where username = ?"(这个查询语句为随便举的例子哈)
PreparedStatement pst = con.preparedStatement(sql)
pst.setString(1,"zengjiaxun")
ResultSet rs = pst.executeQuery()
注意,执行查询使用的是executeQuery()方法,此方法返回的是ResultSet,ResultSet为结果集,封装了查询结果。插入,删除,修改用的是executeUpdate()方法。
pst.clearParameters()
执行sql后记得关闭相应的流。。
JDBC连接MYSQL数据库:package cn.outofmemory.test
import java.sql.Connection
import java.sql.DriverManager
public class Mysql {
public static void main(String arg[]) {
try {
Connection con = null//定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance()//MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root")//链接本地MYSQL
System.out.print("yes")
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage())
}
}
}
Class.forName("com.mysql.jdbc.Driver").newInstance() 我们链接的是MYSQL数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装,
可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到。
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root") 是链接数据库的语句,
返回Connection con对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码)
写入一条数据
package main
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement
public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null//定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance()//MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root")//链接本地MYSQL
Statement stmt//创建声明
stmt = con.createStatement()
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')")
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()")
int ret_id
if (res.next()) {
ret_id = res.getInt(1)
System.out.print(ret_id)
}
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage())
}
}
}
stmt.executeUpdate INSERTDELETEUPDATE语句都用executeUpdate函数来 *** 作
stmt.executeQuery SELECT语句都用stmt.executeQuery函数来 *** 作
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()")
查询最后插入数据的ID号,返回ResultSet res对象
删除和更新数据
package main
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement
public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null//定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance()//MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root")//链接本地MYSQL
Statement stmt//创建声明
stmt = con.createStatement()
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')")
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()")
int ret_id
if (res.next()) {
ret_id = res.getInt(1)
System.out.print(ret_id)
}
//删除一条数据
String sql = "DELETE FROM user WHERE id = 1"
long deleteRes = stmt.executeUpdate(sql)//如果为0则没有进行删除 *** 作,如果大于0,则记录删除的条数
System.out.print("DELETE:" + deleteRes)
//更新一条数据
String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2"
long updateRes = stmt.executeUpdate(updateSql)
System.out.print("UPDATE:" + updateRes)
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage())
}
}
}
删除和更新数据都使用stmt.executeUpdate函数。
删除和更新数据都会返回一个Long的结果,如果为0,则删除或者更新失败,如果大于0则是 *** 作删除的记录数
查询语句
package main
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.ResultSetMetaData
import java.sql.Statement
public class Mysql {
/**
* 入口函数
* @param arg
*/
public static void main(String arg[]) {
try {
Connection con = null//定义一个MYSQL链接对象
Class.forName("com.mysql.jdbc.Driver").newInstance()//MYSQL驱动
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root")//链接本地MYSQL
Statement stmt//创建声明
stmt = con.createStatement()
//新增一条数据
stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')")
ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()")
int ret_id
if (res.next()) {
ret_id = res.getInt(1)
System.out.print(ret_id)
}
//删除一条数据
String sql = "DELETE FROM user WHERE id = 1"
long deleteRes = stmt.executeUpdate(sql)//如果为0则没有进行删除 *** 作,如果大于0,则记录删除的条数
System.out.print("DELETE:" + deleteRes)
//更新一条数据
String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2"
long updateRes = stmt.executeUpdate(updateSql)
System.out.print("UPDATE:" + updateRes)
//查询数据并输出
String selectSql = "SELECT * FROM user"
ResultSet selectRes = stmt.executeQuery(selectSql)
while (selectRes.next()) { //循环输出结果集
String username = selectRes.getString("username")
String password = selectRes.getString("password")
System.out.print("\r\n\r\n")
System.out.print("username:" + username + "password:" + password)
}
} catch (Exception e) {
System.out.print("MYSQL ERROR:" + e.getMessage())
}
}
}
查询语句使用stmt.executeQuery函数
rs.absolute() //绝对位置,负数表示从后面数
rs.first()第一条
rs.last()最后一条
rs.previoust()前一条
rs.next()后一条
rs.beforeFirst()第一条之前
rs.afterLast()最后之后
rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast
在index.jsp中输入如下代码,并配置相应mySQL数据库数据<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<body>
<%
String driver = "com.mysql.jdbc.Driver"
// URL指向要访问的数据库名test1
String url = "jdbc:mysql://127.0.0.1:3306/test"
// MySQL配置时的用户名
String user = "root"
// Java连接MySQL配置时的密码
String password = "111"
try {
// 1 加载驱动程序
Class.forName(driver)
// 2 连接数据库
Connection conn = DriverManager.getConnection(url, user, password)
// 3 用来执行SQL语句
Statement statement = conn.createStatement()
// 要执行的SQL语句
String sql = "select * from login"
ResultSet rs = statement.executeQuery(sql)
String name = null
String mima=null
while (rs.next()) {
name = rs.getString("userName")
mima = rs.getString("passWord")
out.println(name+"\t"+mima)
}
rs.close()
conn.close()
} catch (ClassNotFoundException e) {
System.out.println("Sorry,can`t find the Driver!")
e.printStackTrace()
} catch (SQLException e) {
e.printStackTrace()
} catch (Exception e) {
e.printStackTrace()
}
%>
</body>
12,这样就运行成功了,对于出现8080端口号被占用,可以采用如下的方法进行删除对应的进程。
在命令提示符下,输入netstat -aon | findstr 8080
找到对应的进程的PID,假设是7659 再输入如下的命令
taskkill /pid 7659 /F
即可删除对应的进程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)