首先注册驱动,驱动注册一边即可,将代码封装在一个类里面
/*我们每次连接数据库都要注册驱动,并且注册驱动只要一次即可,如果用一次注册一次岂不是相当的麻烦,那
* 我们为何不把他写入一个类,只要程序一掉用此类,就自动注册驱动,static{}块是在程序中只要调用此类,
* static块就会自动执行的代码块,
并且只会执行一次*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Util {
static String url="jdbc:mysql://127.0.0.1:3306/mydata"; //注册驱动
static String user="root"; //输入用户与密码
static String pass="1";
static{ //一旦程序调用了此类,此段代码便会自动执行
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException //返回一个Connection对象,方便数据的插入
{
return DriverManager.getConnection(url, user, pass);
}
public static void free(Statement st,Connection conn) //等sql语句执行完毕,关闭连接
{
if(st!=null)
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{ //如果前面抛异常,conn照样可以关闭
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*st.close();
conn.close();*/
}
public static void free(ResultSet rs,Statement st,Connection conn)
{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
free(st,conn);
}
}
将mysql里的student表封装成一个对象
//将要插入的数据封装成一个对象,并且生成每个属性的get和set方法
public class Student {
private int id;
private String name;
private int age;
public Student(int id){
this.id=id;
}
public Student(int id,String name,int age)
{
this.id=id;
this.name=name;
this.age=age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
建立一个类用来写mysql的语句
/*此类里面写的是sql语句,当外部调用此类的方法的时候,不用再去写sql语句,
因为内部已经将sql语句写好,不需要知道内部的具体实现*/
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.spi.DirStateFactory.Result;
public class StuDao {
public void insert(Student s) //插入语句
{
try {
Connection conn=Util.getConn();
/*在此用到了一个preparedStatement是Statement的一个子类,它比Statement更方便一些,在Statement的execteUpdate
方法中,传递的参数只能是sql语句,就算是一样的要修改数据不一样而其他一样的几句话也必须将代码全部写出
例如:String sql="insert into student(id,name,age)values(1,zhangsan,11)";
String sql="insert into student(id,name,age)values(2,lisi,12)";
String sql="insert into student(id,name,age)values(3,wangwu,13)";
但是,PreparedStatement使用起来更加方便,它允许传递一个未知量————?,它的setInt等方法有两个参数
第一个是参数的意思是第几个?,第二个参数是修改的值*/
String sql="insert into student(id,name,age)values(?,?,?)";
PreparedStatement st=conn.prepareStatement(sql);
st.setInt(1, s.getId());
st.setString(2, s.getName());
st.setInt(3, s.getAge());
int i=st.executeUpdate();
Util.free(st, conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void update(Student s) //修改语句
{
try {
Connection conn=Util.getConn();
String sql="update student set name=?,age=? where id=?";
PreparedStatement st=conn.prepareStatement(sql);
st.setString(1, s.getName());
st.setInt(2, s.getAge());
st.setInt(3, s.getId());
int i=st.executeUpdate();
Util.free(st, conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(Student s){ //删除语句
try {
Connection conn = Util.getConn();
String sql="delete from student where id =?";
PreparedStatement st = conn.prepareStatement(sql);
st.setInt(1, s.getId());
int i=st.executeUpdate();
Util.free(st, conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void select1(Student s){ //查询语句
try {
Connection conn = Util.getConn();
String sql = "select * from student where id=?";
PreparedStatement st = conn.prepareStatement(sql);
st.setInt(1, s.getId());
ResultSet rs = st.executeQuery();
while(rs.next()){
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getInt(3));
}
Util.free(st, conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
测试类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestConnection {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s=new Student(4);
StuDao dao=new StuDao();
dao.select1(s);
}
}
分享到:
相关推荐
在这个"struts2,hibernate对MYSQL数据库查增删改操作的WEB小程序"中,开发者利用Struts2的Action类来接收和响应用户的HTTP请求。Action类通常包含处理业务逻辑的方法,这些方法会调用Hibernate的相关API来执行对...
JSP的生命周期包括翻译、编译、加载和实例化等阶段,其中`<jsp:useBean>`、`<jsp:setProperty>`等指令用于创建和配置Java对象,`<jsp:forward>`、`<jsp:include>`则用于页面跳转和内容包含。 **4. 数据库操作流程**...
`mysql-connector-java-5.1.35`是MySQL官方提供的一个特定版本(5.1.35)的JDBC驱动包,它允许Java开发者通过编写Java代码与MySQL数据库进行交互,执行SQL语句,实现数据的增删改查等操作。 JDBC驱动主要分为四种...
Java连接MySQL驱动包是Java应用程序与MySQL数据库进行交互的核心组件,它基于Java Database Connectivity (JDBC) API。在Java编程中,我们使用JDBC来执行SQL语句、管理数据库连接和处理结果集。这个驱动包通常包含...
这个名为“servlet赠删改查2012 12 31”的项目显然是一个教学资源,旨在帮助初学者理解如何使用JavaBean和Servlet实现数据库中的CRUD(创建Create、读取Read、更新Update、删除Delete)操作。以下是对这个项目中涉及...
在这个系统中,Java作为客户端,通过JDBC API与MySQL服务器进行通信,实现对人员信息的增删改查等操作。 首先,了解JDBC。JDBC是Java Database Connectivity的缩写,是Java语言访问数据库的标准接口,由Java SDK...
首先,要进行数据库操作,我们需要使用Java的JDBC(Java Database Connectivity)API。JDBC提供了一组接口和类,使得Java程序能够与各种类型的数据库进行交互。首先,我们需要导入必要的库,通常包括`java.sql....
在Java编程中,与MySQL数据库进行交互是常见的任务,涵盖了数据的增删改查操作。以下将详细解释如何使用Java连接MySQL数据库并执行这些基本操作。 首先,要使用Java访问MySQL数据库,需要引入JDBC(Java Database ...
在Java编程中,连接...总的来说,Java连接数据库实现教师管理系统的增删改查,涉及了JDBC API的使用、SQL语句编写以及数据库操作的设计。在实际项目中,还需要关注性能优化、安全性、错误处理以及代码结构的合理性。
本压缩包“java_mysql.rar”聚焦于如何使用Java与MySQL进行交互,实现数据的增删改操作。下面将详细阐述相关知识点。 1. **JDBC(Java Database Connectivity)**: JDBC是Java语言访问数据库的标准API,它提供了...
在这个"java中SSH2增删改的小例子带着登录mysql数据库"中,我们将探讨如何使用SSH2框架来实现基本的数据操作,并与MySQL数据库进行交互。 1. **Struts2**:Struts2是控制层的框架,负责处理HTTP请求并调度到相应的...
【Java与MySQL数据库交互的基础知识】 ...这个“java增删改查小项目”适合初学者理解和实践Java与MySQL的交互,通过实际操作,能够加深对数据库操作的理解,为进一步学习更复杂的Web开发打下基础。
在Java Web开发中,连接数据库并执行增删改查(CRUD)操作是核心技能之一。这个压缩包包含了实现这一目标所需的关键文件。标题“Java web项目连接数据库增删改”意味着我们将探讨如何在Java Web应用程序中与数据库...
在Java编程领域,连接MySQL数据库是一项基础且重要的任务,它使得Java应用程序能够与数据库进行交互,执行查询、更新等操作。本案例中的"java连接mysql数据库"是一个JavaEE项目,专注于展示如何使用Java来建立与...
本资源集合涵盖了使用Java编程语言和JavaEE框架进行MySQL数据库的增(Add)、删(Delete)、改(Update)及查(Select)操作的实例。这些示例代码可以帮助开发者深入理解如何通过JDBC(Java Database Connectivity)...
在IT行业中,构建高效、可维护的企业级应用是至关重要的,而"Maven+Spring+MyBatis+MySQL"是一个常用的技术栈,它整合了多个强大的工具来实现这一目标。这个技术组合提供了完整的开发、测试、集成和部署能力,特别...
Java桌面应用程序连接MySQL数据库是一个常见的任务,特别是在开发需要与服务器交互的本地应用时。这个实例源代码提供了一个基础的框架,帮助开发者理解如何在Java环境中使用JDBC(Java Database Connectivity)来...
**JSP(JavaServer Pages)对数据库的增删改查是Web开发中常见的功能实现,主要涉及前后端交互以及数据库操作。在这个过程中,JSP作为服务器端脚本语言,负责接收前端页面传递的数据,通过连接MySQL这样的关系型...
通过以上知识点,我们掌握了如何使用Java JDBC与MySQL数据库进行交互的基本步骤和技巧,包括连接数据库、执行SQL、处理结果、事务控制、批处理以及性能优化等。这为开发基于Java的数据驱动应用程序奠定了坚实的基础...
先在java项目中创建一个文件夹,将两个jar包导入,右键鼠标,点击BuildPath,再点击Add to Build Path。使用时,需要先实例化sqlCUD类的对象,然后调用cud()方法。构造方法和cud()方法的参数如下: