当前位置: 首页 > news >正文

一个主机多个网站怎样加强公司网站建设

一个主机多个网站,怎样加强公司网站建设,哈尔滨雕塑制作厂家,网络设计主要是干什么的一、JDBC的概述: JDBC:是一种执行sql语句的Java APL,可以为多种关系类型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,Java人员只需要编写一次程序就可以访问不同的数据库。 JDBC APL&#xf…

一、JDBC的概述:

  1. JDBC:是一种执行sql语句的Java APL,可以为多种关系类型数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,Java人员只需要编写一次程序就可以访问不同的数据库。

  2. JDBC APL:供程序员调用的接口与类,集成在Java.sql包中

    1. DriverManager类:管理不同的JDBC驱动

    2. Connection接口:与特定数据库连接

    3. Statement接口:执行sql

    4. PreparedStatement接口:执行sql

二、JDBC的搭建:(有总结例子)

  1. 注册JDBC驱动程序:

    初始化驱动程序,这人样就可以打开与数据库的通信信道

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

    或者

    DriverManager.registerDriver(new Driver());

  2. 建立与数据库的连接:

    这需要使用DriverManager.getConnection()方法创造一个Connection对象,他代表一个物理连接的数据库

    Connection connection=DriverManager.getConnection(url,user,password);
    • URL:

      jdbc:mysql://ip(127.0.0.1):端口(3306)/数据库名?serverTimezone=Asia/Sanghai

    • USER:用户名(root)

    • PASSWORD:密码

  3. 获得Stament执行sql语句
    Statement st =connection.createStatement(); 

    Statement中的方法:

    • 【int类型】 excuteUpdate(String sql) 用于执行ddl语句和dml(增删改)语句 返回操作的行数

      用于执行ddl语句返回0

      用于执行dml语句返回操作的行数

    • 【ResultSet类型】 excuteQuery(String sql)用于执行查询语句返回一个ResuSet集合

  4. 获得PrepareStatement执行sql语句

    在sql语句中参数位置使用占位符,使用setXX方法向sql中设置参数

    PrepareStatement ps = connection.prepareStatement(sql);

    PrepreStatement中的方法:

    • 【int类型】 executeUPdate(): 用于执行ddl语句和dml(增删改)语句,返回操作的行数

      用于执行ddl语句返回0

      用于执行dml语句返回操作行数

    • 【ResultSet类型】executeQuery():用于执行查询语句返回一个ResultSet集合

  5. 关闭与数据库的连接通道

    每次操作完成后关闭与数据库交互的通道

    1. connection.close();

    2. st.close();

    3. ps.close();

接下来就写一个例子来作为JDBC搭建的总结:

public class day1 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//2.驱动注册//方法一:都是为了创造一个对象//Class.forName("com.mysql.cj.jdbc.Driver");//放射方式加载驱动//方式二:DriverManager.registerDriver(new Driver());
​//3.建立与数据库的连接String url="jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai";String user="root";String password="root";//这是我的密码qwqConnection connection = DriverManager.getConnection(url,user,password);System.out.println(connection);
​//4.发送sqlStatement statement= connection.createStatement();statement.executeUpdate("insert into major(name)value('数学')");
​//或者利用PreparedStatement发送/*PreparedStatement preparedStatement = connection.prepareStatement("insert into major(name)value(?)");preparedStatement.setObject(1, "数学");preparedStatement.executeUpdate();*///5.关闭连接statement.close();connection.close();}
}

结果:

三、PreparedStatement和Statement的区别

  1. 代码的可读性和可维护性

    虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次

  2. 安全性

    防止外来代码sql注入。PreparedStatement的预占位符只能插入一个值,而会过滤其他语句;但是Statement可以插入其他语句比如or 1=1之类的和原数据库不符的条件。

举例方便直观感受:

Statement:

Statement statement= connection.createStatement();statement.executeUpdate("insert into major(name)value('数学')");

PrearedStatement:

PreparedStatement preparedStatement = connection.prepareStatement("insert into major(name)value(?)");preparedStatement.setObject(1, "数学");preparedStatement.executeUpdate();

四、结果集处理:(查询学生的姓名,性别等举例)

PreparedStatement和Statement中的executeQuery()方法中会返回一个ResultSe对象,查询结果就封装在此对象中

  • 可以使用ResultSet中的next()方法获得下一行数据

  • 使用getXXX(String name)方法获得值

举例:

有如下表:

有如下类保存学生数据:

public class Student {int number;String name;String gender;float height;Date regTime;
​public void setNumber(int number) {this.number = number;}
​public void setName(String name) {this.name = name;}
​public void setGender(String gender) {this.gender = gender;}
​public void setHeight(float height) {this.height = height;}
​public void setRegTime(Date regTime) {this.regTime = regTime;}
​
}

查询一个学生:

public class day2demo2 {public static void main(String[] args) throws SQLException {//查询学号为1的学生Student student=findStudentByNumber(1);System.out.println(student);}
​public static Student findStudentByNumber (int number) throws SQLException {DriverManager.registerDriver(new Driver());String url="jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai";String user="root";String password="root";//建立钰数据库的连接Connection connection= DriverManager.getConnection(url, user, password);//执行查询PreparedStatement ps = connection.prepareStatement("select number,name,gender,height,reg_time from student where number=?");ps.setObject(1, number);//执行查询后,mysql将数据分装到一个ResultSet中ResultSet re=ps.executeQuery();//将result中的数据重新包装到自己的对象中,使用起来更加方便Student student =new Student();while(re.next()){student.setNumber(re.getInt("number"));student.setGender(re.getNString("gender"));student.setName(re.getString("name"));student.setHeight(re.getFloat("height"));student.setRegTime(re.getTimestamp("reg_time"));}return student;}
}
​

结果:(显示地址)想要显示数据还要重写toString方法

查询全部学生:用Student类型的集合包装每个学生

public class day2demo {
​
/*获取数据库中的信息
*/public static void main(String[] args) throws SQLException {ArrayList<Student> students=  findStudentByNumber();System.out.println(students);}
​public static ArrayList<Student> findStudentByNumber () throws SQLException {DriverManager.registerDriver(new Driver());String url="jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai";String user="root";String password="root";//建立钰数据库的连接Connection connection= DriverManager.getConnection(url, user, password);//执行查询PreparedStatement ps = connection.prepareStatement("select number,name,gender,height,reg_time from student");//执行查询后,mysql将数据分装到一个resultset中ResultSet re=ps.executeQuery();//用arraylist保存student数据ArrayList<Student> students = new ArrayList<>();while(re.next()){Student student =new Student();student.setNumber(re.getInt("number"));student.setGender(re.getNString("gender"));student.setName(re.getString("name"));student.setHeight(re.getFloat("height"));student.setRegTime(re.getTimestamp("reg_time"));students.add(student);}return students;}
}

结果:

http://www.yayakq.cn/news/416422/

相关文章:

  • 网站规划与设计范文企业网站开发一般多少钱
  • 建设银行征信中心个人信用查询官方网站合肥建站免费模板
  • 点蜜免费空间上传网站网站建设刂金手指下拉十五
  • 建立能网上交易的网站多少钱上海做公司网站多少钱
  • 有没有网站建设的兼职郑州市建网站
  • 北京网站建设公司资讯施工企业怎样报考a证
  • 网站建设的盈利模式惠州网站建设怎么样
  • 代理网站推荐搜索关键词排名优化
  • 服务哪家好中医小程序定制seo基础知识考试
  • 做网站的用处越秀定制型网站建设
  • 襄阳住房和城乡建设局网站首页找人做网站被骗怎么办
  • 域名和网站济南优化网站
  • 中建八局第一建设公司网站便宜购物网站大全
  • 企业门户网站开发任务书游戏小程序开发定制
  • 响应式网站 手机版企业网站html5
  • 公司建设网站的优势绍兴seo网站推广
  • 江门网站设计素材爱做网站
  • 东圃手机网站制作费用网站做好第二年要多少钱
  • 寻找扬中网站建设一个电商网站开发需要多久
  • 怎么做网站优化排名上海做网站服务商
  • 专注律师微信网站建设网页制作是干什么的
  • 招聘网站收费标准对比图怎么做网站搭建谷歌seo
  • 江门外贸网站推广方案北京中信建设有限责任公司
  • 嘉兴模板建站系统网络推广的常用方法
  • 网站建设实验分析创新创意产品设计方案
  • 运城建设银行网站点好的模板网站
  • 宿迁哪家做网站推广wordpress 电商小程序
  • 苏州新公司网站建设沈阳模板建站系统
  • 河南国控建设集团招标网站万维网网站301重定向怎么做
  • 深圳响应式设计企业网站淄博网站建设网站推广优化