MySQL JDBC编程_3
【摘要】 完整案例import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class jdbc { ...
完整案例
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class jdbc {
public static void main(String[] args) throws SQLException{
//创建DataSource对象
//相当于分配了一个任务
//导入 javax.sql包
DataSource dataSource = new MysqlDataSource();
//描述数据库服务器在哪里
// 设置数据库所在地址
//jdbc:mysql://127.0.0.1:3306/java_2022?characterEncoding=utf8&useSSL=false
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java_2022?characterEncoding=utf8&useSSL=false");
//((MysqlDataSource)dataSource).setUrl();
//设置登入数据库用户名
((MysqlDataSource)dataSource).setUser("root");
//设置数据库登入密码
((MysqlDataSource)dataSource).setPassword("123456");
//连接数据库! 相当于去执行这个任务
//可能数据库连接失败,所以要处理异常!!!
//这里的Connection类是选择java.sql包下的!!!!
Connection connection = dataSource.getConnection();
//这里就可以写我们的数据库sql代码了
//我们在student 表中插入吕布的成绩
//我们先写好sql字符串
String sql = "insert into student values('吕布',101)";
//然后将sql执行
//这里的PreparedStatement 也是java.sql包下!!!
PreparedStatement statement = connection.prepareStatement(sql);
int ret = statement.executeUpdate(); //数据库增删改操作!!!
//statement.executeQuery(); 数据库查询操作!!!
System.out.println(ret);
System.out.println("statement:"+statement);
//关闭资源
statement.close();
connection.close();
}
}
PreparedStatement
类
我们知道我们可以直接写好sql
然后传入到PreparedStatement
对象执行!
但是当我们需要执行多条sql
比如我们需要插入多个学生的成绩信息时!
显然一条一条写好传入不够科学!!!
因为每条语句都是只有名字和班级不同!!!
如何改进呢
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine(); //输入姓名
int class_ = scanner.nextInt(); //输入班级
String sql = "insert into student values(?,?)"; //姓名和班级用通配符 ? 代替
//然后将sql执行
//这里的PreparedStatement 也是java.sql包下!!!
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1,name); //传入第一列的姓名
statement.setInt(2,class_); //传入第二列的班级
int ret = statement.executeUpdate(); //数据库增删改操作!!!
利用通配符?
我们就可以输入不同人的名字和班级了!!!
那如何去查看一张表的内容呢?
ResultSet ret = statement.executeQuery();
//数据库查询操作!!!
利用executeQuery();
我们可以返回一个表结构!!!
我们对这个表结构进行遍历即可!!!
String sql = "select * from student";
//然后将sql执行
//这里的PreparedStatement 也是java.sql包下!!!
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet ret = statement.executeQuery(); //数据库查询操作!!!
//我们需要将查询后的数据保存在ResultSet表中!!!
System.out.println("statement:"+statement);
while (ret.next()){ //移动指针光标!!
String name = ret.getString(1); //获取第一列的数据
int class_ = ret.getInt(2);//获取第二列的数据
System.out.println("name:"+name+" class:"+class_);
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)