练习题

本文深入解析了MVC框架的概念,包括模型(Model)、视图(View)和控制器(Controller)三部分的作用与交互。同时,文章详细介绍了JDBC的基本操作,通过实例演示了如何对数据库中的book表进行增删改查,涵盖了数据库连接、数据操作及资源关闭等关键步骤。

 

1.使用自己的话表述MVC

M  (model)模型  是用来收集、存储用户的反馈活动的。
V (view)视图 就是类似于浏览器的版面设计,用来给用户观看的。
C  (controller) 是用来接收用户给出的反馈活动,并将用户的反馈活动进一步反馈,将用户反馈的活动,以一种形式反馈给用户。

2.掌握JDBC的基本操作。
  对book表中的数据进行增删改查;
  book表:id int,bookName varchar,price int,description varchar
  Book类:id int,bookName String ,price int,description String
  提示:创建数据库连接工具类DBUtil类。

建立一个Book类

public class Book {
private int id;
private String bookName;
private int price;
private String description;
public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getBookName() {
	return bookName;
}
public void setBookName(String bookName) {
	this.bookName = bookName;
}
public int getPrice() {
	return price;
}
public void setPrice(int price) {
	this.price = price;
}
public String getDescription() {
	return description;
}
public void setDescription(String description) {
	this.description = description;
}
@Override
public String toString() {
	return "Book [id=" + id + ", bookName=" + bookName + ", price=" + price + ", description=" + description + "]";
}

}

创建连接池并连接数据库

package com.mmm.entity;

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DbcpConnection {
	//声明一个DataSource对象
	private static DataSource ds=null;
	//类加载只执行一次
	static{
		try {
			//加载配置文件并读取
			Properties p=new Properties();
			FileInputStream in=new FileInputStream("dbcp.properties");
			p.load(in);
			ds=BasicDataSourceFactory.createDataSource(p);
		} catch (Exception e) {
			
			e.printStackTrace();
		}
	}
	/*
	 * 获取连接对象方法
	 */
	public static Connection getConnection(){
		try {
			
			return ds.getConnection();
		} catch (SQLException e) {
			
			return null;
		}
		
	}
	
	public static void close(Connection conn){
		try {
			conn.close();
			
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}
	
	public static void close(PreparedStatement ps){
		try {
			ps.close();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
	}
	public static void close(ResultSet rs){
		try {
			rs.close();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
	}


}

 创建一个测试类,测试程序

package com.mmm.ui;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.mmm.entity.Book;
import com.mmm.entity.DbcpConnection;
public class Test {
public static void main(String[] args){
	 Book book = new Book();
	 book.setId(19);
	 book.setBookName("计算机网络");
	 book.setDescription("beautiful");
	 book.setPrice(22);
	 // saveBook(book);
	 //deleteBookById(7);
	 //updateBook(book);
	// findBookById(4);
	 //findBookBybookName("book3");
	 findBookByPrice(10);
 }
/*
  * 实现添加书本的方法
  */
public static void saveBook(Book book) {
	 Connection conn = DbcpConnection.getConnection();
     PreparedStatement pstmt;
     try {
    	 for(int i=1;i<21;i++){
			 pstmt = conn.prepareStatement("insert into book(id,bookName,price,description) values(?,?,?,?)");
			 pstmt.setInt(1,i);// book.getId()
			 pstmt.setString(2,"book"+Integer.toString(i));
			 pstmt.setInt(3, 2*i);
			 pstmt.setString(4,"ISN-"+Integer.toString(i));
			 pstmt.execute();
    	 }
    	 
     } catch (SQLException e) {
         
         e.printStackTrace();
     }
     
	
}
/*
 * 实现删除书本的方法(根据id)
 */
public static void deleteBookById(int id) {
	Connection conn = DbcpConnection.getConnection();
    PreparedStatement pstmt;
    try {
        pstmt = conn.prepareStatement("delete from book where id=?");
        pstmt.setInt(1, id);
        int rs = pstmt.executeUpdate();
        System.out.println(rs);
    } catch (SQLException e) {
        
        e.printStackTrace();
    }
	
}
/*
 * 实现修改书本的方法(根据id)
 */
public static void updateBook(Book book){
    Connection conn = DbcpConnection.getConnection();
    PreparedStatement pstmt;
    try {
        pstmt = conn.prepareStatement("update book set bookName=?,price=?,description=? where id=?");
        pstmt.setString(1, book.getBookName());
        pstmt.setInt(2, book.getPrice());
        pstmt.setString(3,book.getDescription());
        pstmt.setInt(4, book.getId());

        int rs = pstmt.executeUpdate();
        System.out.println(rs);
    } catch (SQLException e) {
        
        e.printStackTrace();
    }
}
/*
 * 实现根据id查询商品的方法
 */
public static Book findBookById(Integer id){
    Connection conn = DbcpConnection.getConnection();
    PreparedStatement pstmt;
    Book book = new Book();
    try {
        pstmt = conn.prepareStatement("select * from book where id = ?");
        pstmt.setInt(1, id);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
        	book.setId(rs.getInt("id"));
        	book.setBookName(rs.getString("bookName"));
        	book.setPrice(rs.getInt("price"));
        	book.setDescription(rs.getString("description"));
            System.out.println(book);
        }
    } catch (SQLException e) {
        
        e.printStackTrace();
    }

    return book;
}

/*
 * 实现根据商品名查询书本的方法
 */
public static Book findBookBybookName(String bookName){
    Connection conn = DbcpConnection.getConnection();
    PreparedStatement pstmt;
    Book book = new Book();
    try {
        pstmt = conn.prepareStatement("select * from book where bookName = ?");
        pstmt.setString(1, bookName);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
        	book.setId(rs.getInt("id"));
            book.setBookName(rs.getString("bookName"));
            book.setPrice(rs.getInt("price"));
            book.setDescription(rs.getString("description"));
            System.out.println(book);
        }
    } catch (SQLException e) {
       
        e.printStackTrace();
    }

    return book;
}

/*
 * 实现根据价格查询书本的方法
 */
public static List<Book> findBookByPrice(int price){
    Connection conn = DbcpConnection.getConnection();
    PreparedStatement pstmt;
    List<Book> list = new ArrayList<Book>();
    Book book = new Book();
    try {
        pstmt = conn.prepareStatement("select * from book where price = ?");
        pstmt.setInt(1, price);
        ResultSet rs = pstmt.executeQuery();
        
        while (rs.next()) {
        	book.setId(rs.getInt("id"));
            book.setBookName(rs.getString("bookName"));
            book.setPrice(rs.getInt("price"));
            book.setDescription(rs.getString("description"));
            list.add(book);
            System.out.println(book);
        }
    } catch (SQLException e) {
        
        e.printStackTrace();
    }

    return list;
}

}

 

 

内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值